#excel #excel-formula #excel-2003
Вопрос:
Ниже скриншота/формулы я пытаюсь сопоставить значение даты в столбце E с другим столбцом диапазона дат в столбце B. Если найдено, то верните соответствующее значение столбца D.
FORMULA: ==LOOKUP(E3,$A$3:$B$46,$C$3:$C$46)
Current Output:
FROM TO AGE(Years) INPUT OUTPUT
7/4/65 10/4/65 0.25 7/4/68 0.25
Expected Output:
FROM TO AGE(Years) INPUT OUTPUT
7/4/65 10/4/65 0.25 1/4/68 **2.75**
ПРИМЕЧАНИЕ: Я использую EXCEL 2003!!!
Ответ №1:
Вы должны использовать индекс/соответствие, чтобы получить значение в столбце D, соответствующее позиции соответствия в столбце E:
=IFERROR(INDEX(D$3:D$46,MATCH(E3,$B$3:$B$46,0)),"No")
Однако в соответствии с этим Iferror не был доступен до Excel 2007, поэтому вам придется использовать Iserror или Isna:
=IF(ISNA(MATCH(D3,$B$3:$B$46,0)),"No",INDEX(C$3:C$46,MATCH(D3,$B$3:$B$46,0)))
Для диапазонов дат
Если вы решите использовать Vlookup:
=VLOOKUP(D3,A$3:C$46,3,TRUE)
Или две версии поиска:
=LOOKUP(D3,A$3:C$46)
=LOOKUP(D3,A$3:A$46,C$3:C$46)
все дают одинаковые результаты.
Обратите внимание, что я выполняю поиск по столбцу A, и он не дает того же ответа, что и точный поиск по столбцу B. Это связано с тем, что неясно, должно ли 10/4/65 (например) давать 0,25 или 0,5, потому что и то, и другое возможно, поскольку 10/4/65-это конец одного диапазона и начало другого, и я решил перейти ко второму.
Дополнительная задача
Было бы довольно легко сделать это без поиска и просто с помощью функций Excel 2003?
ДА. Если A1 содержит базовую дату (возможно, дату рождения) 4/4/65, это будет выглядеть так:
=YEAR(D3)-YEAR(A$1) INT((MONTH(D3)-MONTH(A$1)-(DAY(D3)<DAY(A$1)))/3)/4
Комментарии:
1. Еще одно изменение условия, вместо добавления » НЕТ » я хочу проверить, находится ли дата ввода в пределах диапазона, и получить значение индекса. Я попытался добавить условие =ЕСЛИ(И(E3>A3, E3> Я получаю побочные ошибки.
2. =ПОИСК(F3,$A$3:$B$46,$C$3:$C$46) Является ли этот подход правильным?
3. Это на правильном пути, но не совсем правильно. С помощью поиска вы можете иметь либо прямоугольный массив для поиска (например, A3:C46), либо вектор для поиска (например, A3:A46) и другой вектор для возвращаемого массива (например, C3:C46). В первом случае предполагается, что возвращаемое значение находится в самом правом столбце (столбец C), что вам и нужно. Поиск использует приблизительное совпадение — либо точное совпадение, либо следующее меньшее значение в списке — и предполагает, что значения поиска расположены в порядке, как у вас. Видишь support.microsoft.com/en-us/office/…