4

В настоящее время я столкнулся с проблемой с функцией LOOKUP в Excel

иногда он нашел бы правильные данные, а иногда нет.

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

Мой синтаксис или использование LOOKUP неверны? Как мне исправить это, чтобы получить ожидаемый результат?

Я не могу понять, что я делаю там не так

вот таблица данных csv (мой немецкий компьютер использует разделители ';' также в формуле, возможно, вам придется их редактировать)

;"LOOKUP(C2;D2:D4;A2:A4)";;;;;
D4;"=LOOKUP(C2;D2:D4;A2:A4)";3400;3400;;;
CI;;;2390;;;
F5;;;900;;;
;"LOOKUP(C6;D6:D11;A6:A11)";;;;;
D4;"=LOOKUP(C6;D6:D11;A6:A11)";3600;900;;;
F4;;;3600;;;
CI;;;2390;;;
D4;;;900;;;
B4;;;2250;;;
D4;;;900;;;
;;;;;;
;;;;;;
;"LOOKUP(C15;D15:D17;A15:A17)";;;;;
D4;"=LOOKUP(C15;D15:D17;A15:A17)";3600;900;;;
F4;;;3600;;;
CI;;;2390;;;
;;;;;;
;"LOOKUP(C20;D20:D27;A20:A27)";;;;;
D4;"=LOOKUP(C20;D20:D27;A20:A27)";3600;900;;;
F4;;;3600;;;
F6;;;3650;;;
F5;;;3700;;;
CI;;;2390;;;
D4;;;900;;;
B4;;;2250;;;
D4;;;900;;;

5 ответов5

8

Если бы я понял, что вы пытаетесь сделать, я бы предложил использовать INDEX и MATCH:

Посмотрите мой пример, который вы могли бы использовать в своем первом примере:

=INDEX(A2:A4,MATCH(C2,D2:D4,0),1)

Вы также можете использовать OFFSET который часто упускается из виду:

=OFFSET(A2,MATCH(C2,D2:D4,0)-1,0)
7

Причиной LOOKUP является то, что значения в lookup_vector должны располагаться в порядке возрастания:

..., -2, -1, 0, 1, 2, ..., AZ, FALSE, TRUE;

в противном случае LOOKUP может не вернуть правильное значение

Смотрите ссылку для получения дополнительной информации:

https://support.office.com/en-gb/article/LOOKUP-function-446d94af-663b-451d-8251-369d5e3864cb

2

@ Джонатан, я хотел бы предложить две формулы.

Формула 1 - это = LOOKUP(5,1/(D317:D319 = C317), A317:A319)

Формула 2:,, = LOOKUP(317 долларов США, D317:339 долларов США, A317:339 долларов США)

Примечание: диапазон данных от A317 до D317 для формулы 1.

Примечание: диапазон данных от A317 до D339 для формулы 2.

Для первой формулы.

Значение поиска в C317

Диапазон поиска от D317 до D319.

Диапазон векторов результатов составляет от A317 до A319.

NB. Вам нужно написать формулу для каждого диапазона данных.

Обратите внимание также на формулу 1, вместо 5 следует использовать любое значение, которое больше 1. Используйте 5/1, чтобы найти True & False.

Другая мера предосторожности : диапазон данных должен быть отсортирован в порядке возрастания.

Кроме того, для Формулы 2 я использовал весь диапазон данных только из-за пустых строк.

Надеюсь, это поможет вам, я разместил решение после того, как был проверен мной. Я могу загрузить снимок экрана, если и когда вам нужно.

2

С веб-сайта поддержки Office:

Важно: значения в lookup_vector должны быть расположены в порядке возрастания: ..., -2, -1, 0, 1, 2, ..., AZ, FALSE, TRUE; в противном случае LOOKUP может не вернуть правильное значение. Прописные и строчные буквы эквивалентны.

Это становится ясно в функции VLOOKUP, которая официально заменяет LOOKUP, где есть последний параметр, который выбирает между имитацией поведения LOOKUP (требуется отсортированные данные) или поиском в несортированных данных.

1

Я обнаружил, что если я пересортирую таблицу, даже если все будет в порядке, LOOKUP вернет правильный ответ.

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