RICH937
Board Regular
- Joined
- Apr 15, 2023
- Messages
- 59
- Office Version
- 365
- Platform
- Windows
- Mobile
Hello Excel People!
I have data in a table that I am trying to transfer over to a dynamic array. There are 4 variables represented by the table columns that I want to sort within the dynamic array using a dropdown for each variable. If there is a value in any of the 4 dropdowns, I am trying to filter the Array with all that are selected. I know there's another way to do this that hides the rows, but I can't go this route as the actual table is +10K long, and it will hide the data I am trying to analyze. I managed to get it to work using what seems like 500 [if(and] formulas, but I am really hoping there is an easier, more compact way of doing this. Applying this formula to the database I'm working on will slow my laptop to a crawl. Also, I have 8 variables in total I'd like to filter/combo filter. I nearly lost my marbles writing this one for 4, and don't think my psyche will stand adding 4 more to this beast.
NOTE: I tried to figure doing this with Lambda, but am absolutely clueless how Lambda works....and help vids are basically non-existent for anything like this.
ANY help will be greatly appreciated! Thanks so much!
I have data in a table that I am trying to transfer over to a dynamic array. There are 4 variables represented by the table columns that I want to sort within the dynamic array using a dropdown for each variable. If there is a value in any of the 4 dropdowns, I am trying to filter the Array with all that are selected. I know there's another way to do this that hides the rows, but I can't go this route as the actual table is +10K long, and it will hide the data I am trying to analyze. I managed to get it to work using what seems like 500 [if(and] formulas, but I am really hoping there is an easier, more compact way of doing this. Applying this formula to the database I'm working on will slow my laptop to a crawl. Also, I have 8 variables in total I'd like to filter/combo filter. I nearly lost my marbles writing this one for 4, and don't think my psyche will stand adding 4 more to this beast.
NOTE: I tried to figure doing this with Lambda, but am absolutely clueless how Lambda works....and help vids are basically non-existent for anything like this.
ANY help will be greatly appreciated! Thanks so much!
Filtered Array Help Please.xlsx | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | L | M | |||
1 | DROPDOWNS | ||||||||||||||
2 | CATEGORY | CUSTOMER NAME | PRODUCT SELECTED | DISTRIBUTOR | |||||||||||
3 | →→→→ | ||||||||||||||
4 | |||||||||||||||
5 | DATA SET | DROPDOWN FILTERED DYNAMIC ARRAY | |||||||||||||
6 | CATEGORY | CUSTOMER NAME | PRODUCT SELECTED | DISTRIBUTOR | VOLUME | CATEGORY | CUSTOMER NAME | PRODUCT SELECTED | DISTRIBUTOR | VOLUME | |||||
7 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 1825 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 1825 | |||||
8 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 3710 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 3710 | |||||
9 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 2900 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 2900 | |||||
10 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 840 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 840 | |||||
11 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 760 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 760 | |||||
12 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 580 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 580 | |||||
13 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 3 | DISTRIBUTOR 2 | 350 | CHANNEL 1 | CUSTOMER 1 | PRODUCT 3 | DISTRIBUTOR 2 | 350 | |||||
14 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 1490 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 1490 | |||||
15 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 3 | DISTRIBUTOR 2 | 1290 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 3 | DISTRIBUTOR 2 | 1290 | |||||
16 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 920 | CHANNEL 1 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 920 | |||||
17 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 2370 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 2370 | |||||
18 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 1570 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 1570 | |||||
19 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 4775 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 4775 | |||||
20 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 4160 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 4160 | |||||
21 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 3 | DISTRIBUTOR 1 | 2720 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 3 | DISTRIBUTOR 1 | 2720 | |||||
22 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 2700 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 2 | DISTRIBUTOR 2 | 2700 | |||||
23 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 690 | CHANNEL 2 | CUSTOMER 1 | PRODUCT 1 | DISTRIBUTOR 1 | 690 | |||||
24 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 3 | DISTRIBUTOR 2 | 630 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 3 | DISTRIBUTOR 2 | 630 | |||||
25 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 510 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 510 | |||||
26 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 330 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 2 | DISTRIBUTOR 2 | 330 | |||||
27 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 320 | CHANNEL 2 | CUSTOMER 2 | PRODUCT 1 | DISTRIBUTOR 1 | 320 | |||||
28 | |||||||||||||||
29 | |||||||||||||||
Filtered Array Example |
Cell Formulas | ||
---|---|---|
Range | Formula | |
H7:L27 | H7 | =IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME])*(DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]="",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME])*(DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]=""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME])*(DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]=""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]=""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]="",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]=""),FILTER(INDEX(DataSet,,),((DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME])*(DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED]))),IF(AND(Dropdowns[CATEGORY]="",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]="",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED])*(DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),IF(AND(Dropdowns[CATEGORY]<>"",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]=""),FILTER(INDEX(DataSet,,),((DataSet[CATEGORY]=Dropdowns[CATEGORY]))),IF(AND(Dropdowns[CATEGORY]="",Dropdowns[CUSTOMER NAME]<>"",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]=""),FILTER(INDEX(DataSet,,),((DataSet[CUSTOMER NAME]=Dropdowns[CUSTOMER NAME]))),IF(AND(Dropdowns[CATEGORY]="",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]<>"",Dropdowns[DISTRIBUTOR]=""),FILTER(INDEX(DataSet,,),((DataSet[PRODUCT SELECTED]=Dropdowns[PRODUCT SELECTED]))),IF(AND(Dropdowns[CATEGORY]="",Dropdowns[CUSTOMER NAME]="",Dropdowns[PRODUCT SELECTED]="",Dropdowns[DISTRIBUTOR]<>""),FILTER(INDEX(DataSet,,),((DataSet[DISTRIBUTOR]=Dropdowns[DISTRIBUTOR]))),DataSet)))))))))))))))) |
Dynamic array formulas. |
Cells with Data Validation | ||
---|---|---|
Cell | Allow | Criteria |
B3:E3 | List | =B$7:B$27 |