Как вернуть первую сопоставленную запись на основе нескольких критериев в Excel

Frank спросил: 12 мая 2018 в 05:02 в: excel

Я встречаю проблему, которую хочу получить возвращаемое значение из другой таблицы на основе соответствия нескольких критериев. Однако совпадающие записи могут быть более 1, поэтому в этой ситуации я просто хочу получить первую совпадающую запись (например, первая запись, расположенная на A6, вторая совпадающая запись, расположенная на A15, поэтому мне нужен A6); Вот примеры данных:

Я хочу получить регион из таблицы2 на основе следующих критериев:

  1. Таблица 1! Date.Truck = Таблица 2! Дата + Грузовик

  2. (Таблица 1! Фактическое время > Таблица 2! Start Time) и (Таблица 1! Фактическое время < Таблица 2! End Time)

Но, например, у меня есть три строки, сопоставленные выше критериям, но в этой ситуации я просто хочу первый матч, вот (1), поэтому я получил Нью-Джерси.

Я пытаюсь написать формулу Array с функцией Small, но это не работает:

={SMALL(IF((A2='Table 2'!$A:$A)--(D2>'Table 2'!$C:$C)--(D2<'Table 2'!$D:$D),'Table 2'!$B:$B),1)}

1 ответ

Есть решение
MacroMarc ответил: 12 мая 2018 в 07:20

{=INDEX('Table 2'!$B:$B, MIN(IF(('Table 2'!$A:$A=A2)*('Table 2'!$C:$C<=C2)*('Table 2'!$D:$D>=C2)=1, ROW('Table 2'!$B:$B))), 1)}

Идея состоит в том, что MIN(IF(('Table 2'!$A:$A=A2)*('Table 2'!$C:$C<=C2)*('Table 2'!$D:$D>=C2)=1, ROW('Table 2'!$B:$B))) дает минимальную строку, которая подходит.

('Table 2'!$A:$A=A2)*('Table 2'!$C:$C<=C2)*('Table 2'!$D:$D>=C2) дает вам массив 0s и 1s.

Frank ответил: 12 мая 2018 в 07:01
следует добавить {}: = INDEX ('Таблица 2'! B: B, MIN (IF (('Таблица 2'! A: A = A2) ('Таблица 2'! C: C < = C2) ('Таблица 2'! D: D > = C2) = 1, ROW ('Таблица 2'! B: B))), 1)
MacroMarc ответил: 12 мая 2018 в 07:20
yeh, я ВСЕГДА забываю рассказать формулам массива людей