Я использую формулу ниже, чтобы получить последнее значение каждого отдельного элемента в строках в сводной таблице.

=HLOOKUP("Last Updated",$D$4:$D$293,MATCH(A5,$A$5:$A$293)+1)

Намерение использовать формулу соответствия в этом состоит в том, чтобы вернуть значение строки. Он работает нормально до 221 строки, затем он дает необычные номера строк между ними, а затем в конце он снова начинает работать нормально.

Я не могу понять, почему формула соответствия дает неправильный вывод только для нескольких строк.

2 ответа2

1

По умолчанию функция MATCH предполагает, что ваш массив отсортирован в порядке возрастания:

Match_type    Behavior

1 or omitted  MATCH finds the largest value that is less than or equal to lookup_value.  
              The values in the lookup_array argument must be placed in ascending order, 
              for example: ...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE.

0             MATCH finds the first value that is exactly equal to lookup_value. 
              The values in the lookup_array argument can be in any order.

-1            MATCH finds the smallest value that is greater than or equal to lookup_value. 
              The values in the lookup_array argument must be placed in descending order, 
              for example: TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ..., and so on.

Для получения правильного результата используйте

MATCH(A5,$A$5:$A$293,0)

1

Вы используете Match без третьего аргумента. Тогда по умолчанию будет установлено значение true, что означает, что Match вернет приблизительный поиск, что может привести к неверному результату, если данные не отсортированы.

Если вы не знаете об ИСТИНА, ЛОЖЬ или 0 или 1 аргумент, прочитайте https://teylyn.com/2015/01/15/vlookup-why-do-i-need-true-or-false/ который применяется к Vlookup так же, как и к Match.

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