Excel extracting multiple matching rows

Multi tool use
Excel extracting multiple matching rows
I have a matrix of data which has the records of diferent products ( by serial number) and a category (name of the brand) which has several products.
The data set consists of multiple columns for each product and I want to compare the different categories with a box-Whisher plot some of the settings.
For example, I want to compare results from Data1 for the two diferent motor brands.
My question is how can I dinamically select the range of each "brand"?
I would search for the name of the motor I would like to plot in the leftmost column and retrive the rows with the column content I wish to plot. Though, I can not figure out how I could do this in excel.
Thanks!
EDIT:
The idea is to automatically update each series value of the box plot, where each series name is the brand of the motor. I have 10 different brands of motors, where they could have different number of serial numbers. Therefore, I am looking for a formula/VBA that could for each motor type " see how many serial numbers exist(rows) of that motor and select the values of one data type (e.g. Data1)to the series value of the box plot.
I do not know if I explained my problem clearly..
The idea is to automatically update each series value of the box plot, where each series name is the brand of the motor. I have 10 different brands of motors, where they could have different number of serial numbers. Therefore, I am looking for a formula/VBA that could for each motor type " see how many serial numbers exist(rows) of that motor and select the values of one data type (e.g. Data1)to the series value of the box plot. I do not know if I explained my problem clearly..
– Francisco Costa
Jul 3 at 10:57
1 Answer
1
The range of Rolls Royce in columns A:G will be,
=index(a:a, match("Rolls Royce", a:a, 0)):index(g:g, aggregate(14, 6, row($2:$9999)/(a$2:a$9999="Rolls Royce"), 1))
This range can be proved with the sum of column D (data1).
=sum(index(d:d, match("Rolls Royce", a:a, 0)):index(d:d, aggregate(14, 6, row($2:$9999)/(a$2:a$9999="Rolls Royce"), 1)))
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
I would recommend being more specific with your desired output. There are many ways of achieving what you want it to do, but some are more efficient than others, depending on how you wish to manipulate with the data afterwards. Ideally create a mockup of an expected output of the data you provided in your picture
– Rawrplus
Jul 3 at 9:16