Точное совпадение регистра с помощью Excel vlookups - PullRequest
1 голос
/ 12 октября 2011

У меня есть электронная таблица с уникальными идентификаторами.Проблема в том, что они уникальны только с учетом регистра, что означает, что у меня есть: a06D000000QO5uW & a06D000000QO5uw.

Я хочу выполнить vlookup для этих идентификаторов и получить соответствующее значение.Можно найти регистрозависимое соответствие, используя эту статью, которую я нашел:

http://support.microsoft.com/kb/214264

Проблема, которую я обнаружил, заключается в том, что поскольку vlookup вложен в функцию Exact, он возвращает первое совпадениеэто находит, который, возможно, не тот, который я ищу.Если я использую образец данных из статьи, он выглядит следующим образом:

Name    Age     Joe
Mary    32  
joe     48  
Bob     53  
Sue     27  
Joe     30  

, а внешний вид выглядит следующим образом:

=IF(EXACT(C1,VLOOKUP(C1,A1:B6,1,FALSE))=TRUE,VLOOKUP(C1,A1:B6,2,FALSE),"No exact match")

Кажется, проблема в том, что vlookup для тестирования "Джо "сталкивается с" Джо "в первую очередь, и потому что он не чувствителен к регистру, возвращает это как совпадение - это означает, что он никогда не доходит до" Джо ".Затем точная функция завершается ошибкой, потому что она пытается проверить «Джо» против «Джо».

Есть ли способ обойти это?Я действительно хотел не идти по маршруту VBA, потому что у нас есть смесь пользователей Mac и Window, и поэтому я хотел сохранить его в формулах.

Ответы [ 2 ]

4 голосов
/ 12 октября 2011

Ваша проблема (с этим точным примером) покрыта здесь

  • Формула массива (нажмите Ctrl Shift Введите ) вместе вернет 30 против Джо (NA, если совпадение не найдено).=INDEX(B1:B6,MATCH(1,--EXACT(A1:A6,C1),0))
  • Более простая формула, упомянутая в той же статье: =LOOKUP(1,1/EXACT(A1:A6,C1),B1:B6)

enter image description here

2 голосов
/ 27 ноября 2013

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

=INDEX($B$2:$B$6,MATCH(TRUE,INDEX(EXACT(C1,$A$2:$A$6),0),0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...