Spis treści
Samouczek wyjaśnia, jak sprawić, by w Excelu VLOOKUP uwzględniał wielkość liter, demonstruje kilka innych formuł rozróżniających wielkość tekstu oraz wskazuje mocne strony i ograniczenia każdej z funkcji.
Chyba każdy użytkownik Excela wie, jaka funkcja wykonuje w Excelu lookup pionowy. Zgadza się, jest to VLOOKUP. Jednak niewiele osób zdaje sobie sprawę, że VLOOKUP w Excelu nie uwzględnia wielkości liter, czyli traktuje małe i wielkie litery UPPERCASE jako te same znaki.
Oto szybki przykład, który demonstruje niezdolność VLOOKUP do rozróżniania wielkości liter w tekście. Załóżmy, że masz "bill" w komórce A2 i "Bill" w A4. Poniższa formuła złapie "bill", ponieważ pojawia się jako pierwsza w tablicy lookup i zwróci pasującą wartość z B2.
=VLOOKUP("Bill", A2:B4, 2, FALSE)
W dalszej części artykułu pokażę sposób na to, jak sprawić, by w VLOOKUPie rozróżniana była wielkość liter. Poznamy też kilka innych funkcji, które mogą wykonywać dopasowanie wielkości liter w Excelu.
Formuła VLOOKUP z rozróżnianiem wielkości liter
Jak wspomniano powyżej, zwykła formuła VLOOKUP nie rozpoznaje wielkości liter. Istnieje jednak sposób, aby uczynić Excel VLOOKUP wrażliwym na wielkość liter, co zademonstrowano w poniższym przykładzie.
Załóżmy, że masz Identyfikatory pozycji w kolumnie A i chcesz wyciągnąć cenę i komentarz z kolumn B i C. Problem polega na tym, że identyfikatory zawierają zarówno małe, jak i duże litery. Na przykład wartości w A4 (001Tvci3u) i A5 (001Tvci3U) różnią się tylko ostatnim znakiem, odpowiednio "u" i "U".
Podczas sprawdzania "001Tvci3 U ", standardowa formuła VLOOKUP daje wynik 90$, który jest związany z "001Tvci3 u ", ponieważ występuje przed "001Tvci3 U " w tablicy lookup, ale to nie jest to, czego chcesz, prawda?
=VLOOKUP(F2, A2:C7, 2, FALSE)
Aby wykonać w Excelu lookup z uwzględnieniem wielkości liter, łączymy funkcje VLOOKUP, CHOOSE i EXACT:
VLOOKUP(TRUE, WYBIERZ({1,2}, EXACT( lookup_value , lookup_array ), tablica ), 2, 0)Ta ogólna formuła doskonale sprawdza się w każdej sytuacji.Możesz nawet sprawdzić od prawej do lewej , coś, co zwykła formuła VLOOKUP nie jest w stanie zrobić. Kudos do Pouriya za zaproponowanie tego prostego i eleganckiego rozwiązania!
W naszym przypadku rzeczywiste formuły przebiegają następująco.
Aby wyciągnąć cenę w F3:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)
Aby pobrać komentarz F4:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)
Uwaga. We wszystkich wersjach Excela innych niż Excel 365, działa to tylko jako formuła tablicowa, więc pamiętaj, aby nacisnąć Ctrl + Shift + Enter, aby ją poprawnie wypełnić. W Excelu 365, ze względu na wsparcie dla dynamicznych tablic, działa to również jako zwykła formuła.
Jak działa ta formuła:
Podstawową częścią, która robi sztuczkę, jest formuła CHOOSE z zagnieżdżonym EXACT:
CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)
Tutaj funkcja EXACT porównuje wartość w F2 z każdą wartością w A2:A7 i zwraca TRUE, jeśli są dokładnie takie same, łącznie z wielkością liter, FALSE w przeciwnym razie:
{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
Dla indeks_num argument CHOOSE, używamy stałej tablicowej {1,2}. W efekcie funkcja łączy wartości logiczne z powyższej tablicy oraz wartości z C2:C7 w tablicę dwuwymiarową jak poniżej:
{FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}
Funkcja VLOOKUP bierze ją stamtąd i szuka wartości lookup (która jest TRUE) w 1. kolumnie tablicy dwuwymiarowej (reprezentowanej przez wartości logiczne) i zwraca dopasowanie z 2. kolumny, czyli cenę, której szukamy:
VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)
Formuła XLOOKUP z rozróżnianiem wielkości liter
Subskrybenci Microsoft 365 mogą wykonać w Excelu lookup z uwzględnieniem wielkości liter za pomocą jeszcze prostszej formuły. Jak można się domyślić, mówię o potężniejszym następcy VLOOKUP - funkcji XLOOKUP.
Ponieważ XLOOKUP operuje na tablicach lookup i return osobno, nie potrzebujemy sztuczki z tablicą dwuwymiarową z poprzedniego przykładu. Po prostu użyj EXACT dla lookup_array argument:
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), tablica , "Not found")Ostatni argument ("Nie znaleziono") jest opcjonalny. Określa on jedynie, jaką wartość zwrócić, jeśli nie zostanie znalezione żadne dopasowanie. Jeśli go pominiesz, to w przypadku, gdy formuła nic nie znajdzie, zwrócony zostanie standardowy błąd #N/A.
Dla naszej przykładowej tabeli są to formuły XLOOKUP z rozróżnianiem wielkości liter, których należy użyć.
Aby uzyskać cenę w F3:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Nie znaleziono")
Aby wyodrębnić komentarz F4:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Nie znaleziono")
Jak działa ta formuła:
Podobnie jak w poprzednim przykładzie, EXACT zwraca tablicę wartości TRUE i FALSE, gdzie TRUE oznacza dopasowanie z uwzględnieniem wielkości liter. XLOOKUP przeszukuje powyższą tablicę w poszukiwaniu wartości TRUE i zwraca dopasowanie z listy tablica Uwaga, jeśli w kolumnie lookup znajdują się dwie lub więcej dokładnie takich samych wartości (z uwzględnieniem wielkości liter), formuła zwróci pierwsze znalezione dopasowanie.
Ograniczenie XLOOKUP : dostępne tylko w Excelu 365 i Excelu 2021.
SUMPRODUCT - wyszukiwanie z uwzględnieniem wielkości liter, aby zwrócić pasujące liczby
Jak rozumiesz z nagłówka, SUMPRODUCT jest kolejną funkcją Excela, która może wykonać wyszukiwanie z uwzględnieniem wielkości liter, ale może zwrócić wartości numeryczne Tylko. Jeśli to nie jest twój przypadek, to przeskocz do przykładu INDEX MATCH, który zapewnia rozwiązanie dla wszystkich typów danych.
Jak zapewne wiesz, SUMPRODUCT Excela mnoży składniki w określonych tablicach i zwraca sumę iloczynów. Ponieważ chcemy mieć podgląd z uwzględnieniem wielkości liter, używamy funkcji EXACT, aby uzyskać pierwszą tablicę:
=SUMPRODUKT((EXACT(A2:A7,F2) * (B2:B7)))
Niestety, funkcja SUMPRODUCT nie może zwrócić dopasowań tekstowych, ponieważ wartości tekstowe nie mogą być mnożone. W tym przypadku otrzymasz błąd #VALUE! jak w komórce F4 na poniższym zrzucie ekranu:
Jak działa ta formuła:
Podobnie jak w przykładzie VLOOKUP, funkcja EXACT sprawdza wartość w F2 względem wszystkich wartości w A2:A7 i zwraca TRUE w przypadku rozróżniania wielkości liter, FALSE w przeciwnym wypadku:
SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE}*{155;186;90;54;159;28}))
W większości formuł Excel ocenia TRUE na 1, a FALSE na 0. Zatem gdy SUMPRODUCT mnoży elementy dwóch tablic na tych samych pozycjach, wszystkie niepasujące (FALSE) stają się zerami:
SUMPRODUCT({0;0;0;54;0;0})
W rezultacie formuła zwraca liczbę z kolumny B, która odpowiada dokładnemu dopasowaniu wielkości liter w kolumnie A.
Ograniczenie SUMPRODUCT : może zwrócić tylko wartości numeryczne.
INDEX MATCH - wyszukiwanie z uwzględnieniem wielkości liter dla wszystkich typów danych
Wreszcie jesteśmy blisko uzyskania pozbawionej ograniczeń formuły lookupu z rozróżnianiem wielkości liter, która działa we wszystkich wersjach programu Excel i na wszystkich zestawach danych.
Ten przykład pojawia się jako ostatni nie tylko dlatego, że najlepsze zapisuje się na koniec, ale również dlatego, że wiedza, którą zdobyłeś w poprzednich przykładach, może pomóc Ci lepiej zrozumieć formułę MATCH INDEX z rozróżnianiem wielkości liter.
Połączenie funkcji INDEX i MATCH jest często używane w programie Excel jako bardziej elastyczna i wszechstronna alternatywa dla VLOOKUP. Poniższy artykuł wykonuje dobrą pracę (mam nadzieję :) wyjaśniając, jak te dwie funkcje działają razem - Używanie INDEX MATCH zamiast VLOOKUP.
Tutaj przypomnę tylko kluczowe punkty:
- Funkcja MATCH wyszukuje wartość lookup w określonej tablicy lookup i zwraca jej względną pozycję.
- Względna pozycja wartości lookup przechodzi bezpośrednio do suma wierszy argument funkcji INDEX nakazujący jej zwrócić wartość z tego wiersza.
Aby formuła rozpoznawała przypadek tekstowy, wystarczy do klasycznej kombinacji INDEX MATCH dodać jeszcze jedną funkcję. Oczywiście ponownie potrzebna jest funkcja EXACT:
INDEX( tablica , MATCH(TRUE, EXACT( lookup_value , lookup_array ), 0))Prawdziwa formuła w F3 to:
=INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
W F4 używamy tego:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Pamiętaj, że działa on tylko jako formuła tablicowa we wszystkich wersjach innych niż Excel 365, więc pamiętaj, aby wprowadzić go, naciskając klawisze Ctrl + Shift + Enter razem. Jeśli zrobisz to poprawnie, formuła zostanie zamknięta w nawiasach klamrowych, jak pokazano na zrzucie ekranu poniżej:
Jak działa ta formuła:
Tak jak we wszystkich poprzednich przykładach, EXACT zwraca TRUE dla każdej wartości w A2:A7, która dokładnie odpowiada wartości w F2. Ponieważ używamy TRUE dla lookup_value MATCH, zwraca względną pozycję dokładnego dopasowania z uwzględnieniem wielkości liter, co jest dokładnie tym, czego potrzebuje INDEX, aby zwrócić dopasowanie z B2:B7.
Zaawansowana formuła wyszukiwania z rozróżnianiem wielkości liter
Wspomniana wyżej formuła INDEX MATCH wygląda idealnie, prawda? Ale w rzeczywistości tak nie jest, pokażę Ci dlaczego.
Załóżmy, że komórka w kolumnie zwrotnej odpowiadająca wartości lookup jest pusta. Co zwróci formuła? Nic. A teraz zobaczmy, co faktycznie zwraca:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Ups, formuła zwraca zero! Być może, nie jest to naprawdę ważne, gdy mamy do czynienia wyłącznie z wartościami tekstowymi. Jednak jeśli twój arkusz zawiera liczby, a niektóre z nich są prawdziwymi zerami, jest to problem.
W rzeczywistości wszystkie inne formuły lookup omówione wcześniej zachowują się w ten sam sposób. Ale teraz chcesz mieć nieskazitelną formułę, prawda?
Aby formuła INDEX MATCH z rozróżnianiem wielkości liter była absolutnie doskonała, zawijasz ją w funkcję JEŻELI, która sprawdza, czy zwracana komórka jest pusta i w takim przypadku nie zwraca nic:
=IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")
W powyższym wzorze:
- "C" to kolumna zwrotów.
- "1" to liczba, która zmienia położenie względne komórki zwróconej przez funkcję MATCH do komórki adres rzeczywistej komórki .
Na przykład, tablica lookup w naszej funkcji MATCH to A2:A7, co oznacza, że względna pozycja komórki A2 to "1", ponieważ jest to pierwsza komórka w tablicy. Ale w rzeczywistości tablica lookup zaczyna się w wierszu 2. Aby wyrównać różnicę, dodajemy 1, więc funkcja INDIRECT zwróci wartość z prawej komórki.
Poniższe zrzuty ekranu demonstrują ulepszoną formułę INDEX MATCH z rozróżnianiem wielkości liter w akcji.
Jeśli komórka zwrotna jest pusta, formuła nie wypisuje nic (pusty łańcuch):
Jeśli komórka zwrotna zawiera zero, formuła zwraca 0:
Jeśli wolisz wyświetlić jakiś komunikat, gdy komórka zwrotna jest pusta, zastąp pusty ciąg ("") w ostatnim argumencie IF jakimś tekstem:
=IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "Nie ma nic do zwrócenia, przepraszamy").
Zrób VLOOKUP z rozróżnianiem wielkości liter w łatwy sposób
Użytkownicy naszego pakietu Ultimate Suite dla Excela mają do dyspozycji specjalne narzędzie, które ułatwia i eliminuje stres związany z szukaniem w dużych i złożonych tabelach. Najlepsze jest to, że Merge Two Tables ma opcję rozróżniania wielkości liter, a poniższy przykład pokazuje ją w działaniu.
Załóżmy, że chcesz wyciągnąć z Qty. Lookup stół do Główna tabela oparta na unikalnych identyfikatorach pozycji:
To, co robisz, to uruchomienie kreatora Merge Tables i wykonanie tych czynności:
- Wybierz główną tabelę, do której chcesz wciągnąć nowe dane.
- Wybierz tabelę lookup, w której chcesz szukać nowych danych.
- Wybierz jedną lub więcej kolumn kluczowych (w naszym przypadku ID artykułu). I pamiętaj, aby zaznaczyć Dopasowanie z uwzględnieniem wielkości liter pudełko.
Chwilę później uzyskasz pożądany efekt :)
Tak wygląda lookup w Excelu z uwzględnieniem przypadku tekstowego. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!
Zeszyt ćwiczeń do pobrania
Przykłady VLOOKUP z rozróżnianiem wielkości liter (plik .xlsx)