Excel - Как найти вывод из двух отдельных поисков и между значениями - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь найти выходные данные (полосы в приведенном ниже примере) на основе комбинации значений в первом столбце (А1 и В2) и другого числа, которое находится между минимальной и максимальной полосами.

Мне сложно объяснить, но попробую привести пример, скажем, в первом столбце (А1 и В2) указаны марки автомобилей. Для автомобильной марки А1 и цены 2 я бы ожидал, что на выходе будет полоса ААА. Для марки автомобиля B2 и цены 9 я бы ожидал, что на выходе будет полоса CCC.

Как я могу заполнить вывод с помощью формул Excel, я изучил функцию Index-Match, но в настоящее время я нахожусь в тупике, учитывая, что это сложно, поскольку полосы могут быть одинаковыми, но значения, которые попадают между ними, различаются для разных марок автомобилей. ,

enter image description here

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

Вы захотите сделать так называемый двойной VLOOKUP: VLOOKUP с двумя критериями?

Есть несколько вариантов, и будьте осторожны, что INDEX (MATCH ()) метод использует формулы массива.

Вот пример того, как будет выглядеть формула:

=INDEX(D2:D9,SUMPRODUCT(MATCH(1,(A2:A9=[car])*(B2:B9<=[price])*(C2:C9>[price]),0)))

Просто замените [car] и [price] ссылками на ячейки (или жесткозакодированные значения).

0 голосов
/ 20 ноября 2018

Индекс / Соответствие возможно без формул массива.Сравните формулу со скриншотом.

=INDEX(INDEX(D:D,MATCH($H$2,A:A,0)):INDEX(D:D,MATCH($H$2,A:A,1)),MATCH($H$3,INDEX(B:B,MATCH($H$2,A:A,0)):INDEX(B:B,MATCH($H$2,A:A,1)),1))

enter image description here

0 голосов
/ 20 ноября 2018

Используйте следующую формулу массива.Формула массива означает, что вы должны нажать CTRL+SHIFT+ENTER после ввода формулы в ячейку.

=INDEX(D2:D9,MIN(IF(A2:A9=F2,IF(B2:B9<=G2,IF(C2:C9>=G2,ROW(D2:D9)-ROW(D1))))))

Нажмите CTRL + SHIFT + ENTER , чтобыоцените формулу как формулу массива.

enter image description here

Если вы предпочитаете формулу без массива, вы можете использовать эту формулу.

=INDEX(D2:D9,AGGREGATE(15,6,(ROW(D2:D9)-ROW(D1))/((A2:A9=F2)*(B2:B9<=G2)*(C2:C9>=G2)),1))
...