Я пытаюсь узнать цены, основываясь на том, совпадает ли код, и находится ли дата в определенном диапазоне.

Я хочу вытащить столбец H на основе этих условий:

  • Столбцы A и F совпадают
  • Столбец G находится между столбцами B и C или равен им.

Я подумал, что формула массива с INDEX/MATCH будет лучшим методом, но пока не увенчалась успехом.

Я пытался формулы, используя логику, подобную этой:

{=INDEX(H2:H10, MATCH(1, IF(A2=F2:F10,IF(B2<=G2:G10,IF(C2>=G2:G10,1),0),0),0))}


Образец изображения

2 ответа2

0

Если вы хотите первое, то используйте эту форму массива INDEX:

=INDEX($H$2:$H$10,MATCH(1,(($F$2:$F$10=A2)*($G$2:$G$10>=B2)*($G$2:$G$10<=C2)),0))

Будучи формулой массива, она должна быть подтверждена Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

0

Если вам нужны все подходящие цены, вы можете использовать TEXTJOIN() :

Скриншот рабочего листа

Массив введите следующую формулу в D3 и скопируйте-вставьте / заполните столбец:

{=TEXTJOIN(", ",TRUE,IFERROR(1/(1/(($F$2:$F$10=A2)*($G$2:$G$10>=B2)*($G$2:$G$10<=C2)*($H$2:$H$10))),""))}

Обратите внимание, что TEXTJOIN() доступен только в Excel 2016. В более ранних версиях Excel требуется UDF с полизаполнением. (См. Этот пост для основного.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .