Как вернуть массив, где столбец соответствует значению - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь создать столбец _Type_below, который возвращает значение типа для соответствующего имени И соответствующего интервала. Я знаю, что могу использовать VLOOKUP для отдельных имен, но допустим, у меня есть тысячи имен, и я могу указать массив для VLOOKUP для всех них. Ура !!

Name   position             _Type_             Name    Range_From      Range_To     Type
bob    0                      A                bob     0               30            A
bob    5                      A                bob     30              100           B
bob    10                     A                doug    0               40            C
bob    15                     A                doug    40              200           A
bob    20                     A
bob    30                     B
bob    40                     B
bob    80                     B
doug   0                      C
doug   20                     C
doug   40                     A
...       

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

Если у вас есть формула динамического c массива, вы можете использовать FILTER ():

 =VLOOKUP(B2,FILTER(E:G,A2=D:D),3)

enter image description here


Если нет, то Ваши данные должны быть отсортированы по D, а затем E:

=VLOOKUP(B2,INDEX(E:E,MATCH(A2,D:D,0)):INDEX(G:G,MATCH(A2,D:D,0)+COUNTIF(D:D,A2)-1),3)

Это должно быть относительно быстро, но для этого нужно отсортировать данные.

enter image description here

1 голос
/ 02 апреля 2020

Вы можете go супер старомодно, получить строку с помощью SumProduct() и передать ее в Index(). Это не будет быстрым, хотя.

=INDEX($I$1:$I$5, SUMPRODUCT(($F$1:$F$5=A2)*($G$1:$G$5<=B2)*($H$1:$H$5>B2)*ROW($F$1:$F$5)), 1)

enter image description here

...