Spis treści
Jeśli masz listę tekstu i chcesz przeszukiwać komórki i zwracać wartości na podstawie listy, będziesz musiał zbudować formułę, ponieważ Excel nie zapewnia prostego sposobu, aby to zrobić. W tym artykule zająłem się tym problemem i przedstawiłem pięć różnych formuł do wykonania tej operacji, abyś mógł wybrać idealną dla swojej sytuacji i zwrócić wartość, jeśli komórka zawiera określony tekstz listy.
Pobierz Zeszyt ćwiczeń
Możesz pobrać zeszyt ćwiczeń, który wykorzystałem w tym artykule z poniższego przycisku i poćwiczyć z nim samodzielnie.
If Cell Contains Text from List.xlsx
Wprowadzenie do funkcji używanych w tym artykule
Formuły, które tu zastosowałem, wykorzystują następujące funkcje:
- Funkcja COUNTIFS:
Funkcja ta zlicza komórki spełniające wiele kryteriów. Składnia funkcji Funkcja COUNTIFS jest następująca.
=COUNTIFS (zakres1, kryteria1, [zakres2], [kryteria2], ...)
- zakres1 - 1. zakres do oceny.
- kryteria1 - Kryterium do zastosowania na 1. zakresie.
- zakres2 [opcjonalnie]: Drugi zakres, działa tak samo jak zakres1.
- kryteria2 [opcjonalnie]: Kryterium, które ma być użyte na 2. zakresie. Funkcja ta pozwala na użycie maksymalnie 127 zakresy i pary kryteriów .
- Funkcja TEXTJOIN:
Funkcja łączy wartości tekstowe z ogranicznikiem. Składnia funkcji Funkcja TEXTJOIN jest następująca.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)
- delimiter: Separator pomiędzy tekstami, które funkcja ma zamiar połączyć.
- ignore_empty: Ten argument określa, czy funkcja ignoruje puste komórki, czy nie.
- tekst1: 1. wartość tekstowa (lub zakres).
- text2 [opcjonalnie]: 2. wartość tekstowa (lub zakres).
- Funkcja MATCH:
Funkcja ta pobiera pozycję elementu w tablicy. Składnia funkcji Funkcja MATCH jest następująca.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: Wartość, która ma być dopasowana w lookup_array .
- lookup_array: Zakres komórek lub referencja do tablicy.
- match_type [opcjonalnie]: 1 = dokładny lub następny najmniejszy, 0 = dokładny mecz, -1 = dokładny lub następny największy. Domyślnie match_type=1.
- Funkcja INDEX:
Funkcja pobiera wartości z listy lub tabeli na podstawie lokalizacji. Składnia funkcji Funkcja INDEX jest następująca.
=INDEX (array, row_num, [col_num], [area_num])
- array: Zakres komórek, lub stała tablicowa.
- row_num: Pozycja wiersza w odnośniku.
- col_num [opcjonalnie] : Pozycja kolumny w referencji.
- area_num [opcjonalnie]: Zakres w referencji, który powinien być użyty.
- Funkcja IFERROR:
Funkcja ta wychwytuje i obsługuje błędy. Składnia funkcji Funkcja IFERROR jest następująca.
=IFERROR (wartość, wartość_if_error)
- wartość: Wartość, referencja lub formuła do sprawdzenia pod kątem błędu.
- value_if_error: Wartość, która ma zostać zwrócona w przypadku znalezienia błędu.
- Funkcja SEARCH:
Funkcja ta pobiera lokalizację tekstu w łańcuchu znaków. Składnia funkcji Funkcja SEARCH jest następująca.
=SEARCH (find_text, within_text, [start_num])
- znajdź_tekst : Ten argument określa, jaki tekst ma być znaleziony.
- within_text: Określa miejsce, w którym ma się znaleźć tekst.
- start_num [opcjonalnie]: Za jego pomocą określisz- od której pozycji w łańcuchu tekstowym będziesz liczył pozycję podanego tekstu. Opcjonalne i domyślnie 1 od lewej.
5 Formuł, aby zwrócić wartość w Excelu, jeśli komórka zawiera określony tekst z listy
Postaram się przedstawić realny przykład w tym zbiorze danych. Niektóre napoje są tu reprezentowane. Chipsy , Zimne napoje oraz Zboża to trzy kategorie napojów w tym zbiorze danych. W pojedynczej kolumnie o nazwie Wszystkie produkty , nazwa i kategorie napojów są połączone ze sobą. Dwie z tych kategorii, Chipsy oraz Zimne napoje , są również n Wykaz kolumna. na podstawie Wykaz w kolumnie, w drugiej kolumnie zostanie wyświetlone żądane wyjście.
1) Połącz funkcje COUNTIF, JEŻELI & OR, aby zwrócić wartość, jeśli komórka zawiera tekst z listy
Jest to najbardziej przydatna formuła, jeśli chcesz zwrócić wartość całej komórki po dopasowaniu.
Tutaj pobrałem wartości komórek z Produkty które pasowały do Wykaz kryteria kolumny i pokazał je Produkt oparty na tej liście kolumna.
Wzór jest następujący:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Podział formuły:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Tutaj Znak gwiazdki ( * ) jest znakiem wieloznacznym, wyszukiwało " Chipsy " i "Zimne napoje" podciągają się w obrębie Komórka B5 który jest "
Ruffles - Chips
"
sznurek.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
Na stronie COUNTIF funkcja zwróciła jeden za każde dopasowanie podłańcucha. "
Chipsy
"
znajduje się w Komórka B5 to zwraca { 1:0 }.
=IF(OR({1;0}), B5, "")
Na stronie LUB funkcja zwraca TRUE wartość, jeśli któryś z argumentów jest TRUE W tym przypadku jeden (1)=. TRUE .
=IF(TRUE, "Ruffles - Chips", "")
Jako że JEŚLI wartość funkcji to. TRUE , zwraca pierwszy argument, który jest pożądanym wyjściem.
Finał Wyjście : Ruffles - Chips
Uwaga:
Tutaj pokazałem komórkę, która pasowała, ale możesz pokazać dowolne dane wyjściowe, zmieniając metodę JEŚLI funkcje wyjściowe z żądanym wyjściem.
=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),TRUE,FALSE)
Read More: If Cell Contain Word Then Assign Value in Excel (4 Formuły)
2. użycie kombinacji IF-OR z funkcją SEARCH do zwrócenia wartości z wieloma warunkami
Tutaj pobrałem wartości komórek z Produkty które pasowały do Wykaz kryteria kolumny i pokazał je Produkt oparty na tej liście kolumna.
Wzór jest następujący:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,")
Podział formuły:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,")
Na stronie SZUKAJ funkcja przeszukała wartości Wykaz kolumna w Komórka B5 . za " Chipsy " powrócił 11 która jest pozycją początkową podłańcucha. Dla Zimne napoje , zwróciło błąd.
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
Na stronie ISNUMBER funkcja przekształcona 11 na TRUE i błąd w FALSE wartość.
=IF(LUB(TRUE,FALSE)),B5,"")
Na stronie LUB funkcja zwraca TRUE wartość, jeśli któryś z argumentów jest TRUE . As there is a TRUE zwraca również argument TRUE wartość w tym przypadku.
=IF(TRUE, "Ruffles - Chips",")
Jako że JEŚLI wartość funkcji to. TRUE , zwraca pierwszy argument, który jest pożądanym wyjściem.
Wyjście końcowe: Ruffles - Chips
Uwaga:
- Tutaj pokazałem komórkę, która pasowała, ale możesz pokazać dowolne dane wyjściowe, zmieniając metodę JEŚLI funkcje wyjściowe z żądanym wyjściem.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Główną zaletą tej formuły jest to, że nie jest to formuła tablicowa, ale nie jest ona zalecana, jeśli masz wiele komórek w Wykaz ponieważ musisz wprowadzić każdą komórkę Wykaz ręcznie.
- W przypadku rozróżniania wielkości liter możemy skorzystać z poniższej formuły opartej na Funkcja FIND zamiast SZUKAJ funkcja.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Read More: Excel If Cell Contains Text Then Return Value (8 prostych sposobów)
Podobne Lektury:
- Jak podsumować czy komórka zawiera określony tekst w Excelu (6 sposobów)
- Użyj VLOOKUP jeśli komórka zawiera słowo w tekście w Excelu
- Jak znaleźć tekst w Excelu zakres & zwrócić odwołanie do komórki (3 sposoby)
3. użycie formuły TEXTJOIN do zwrócenia wartości w innej komórce, jeśli w komórce znajduje się tekst z listy
Ta formuła jest przydatna, gdy trzeba pokazać jaki łańcuch lub łańcuchy z Wykaz dopasowane.
Tutaj pobrałem wartości komórek z LIST kolumna, w której pasują do Produkt i pokazał je do dopasowanej wartości z Wykaz kolumna.
Wzór jest następujący:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,"))
Podział formuły:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,"))
Tutaj Znak gwiazdki ( * ) jest znakiem wieloznacznym, wyszukiwało " Chipsy " i "Cold Drinks" substring within Cell B5 which is " Ruffles - Chips " string.
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
Na stronie COUNTIF funkcja zwróciła jeden dla każdego dopasowania podłańcucha. Jako " Chipsy " znajduje się w Komórka B5 to zwraca { 1:0 }.
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,"))
Na stronie JEŚLI funkcja zwróciła tylko " Chipsy " wartość, ponieważ tylko pierwsza wartość jego argumentu była jedna =. Prawdziwe .
TEXTJOIN(", ",TRUE,{"Chips";""})
Na stronie TEXTJOIN Funkcja nic tu nie zrobiła, ponieważ tylko jedna wartość z Wykaz Gdyby było wiele wartości do dopasowania, zwróciłoby wszystkie z przecinkami (,) między nimi jako separator.
Wyjście końcowe: chipy
Read More: Jeśli komórka zawiera tekst to dodaj tekst do innej komórki w Excelu
4. użycie formuły INDEX MATCH do zwrócenia wartości, jeśli komórka zawiera określony tekst
Jest to alternatywa dla TEXTJOIN Formuła ta pokazuje również, jaki ciąg lub ciągi z Wykaz dopasowane.
Tutaj pobrałem wartości komórek z LIST kolumna, w której pasują do Produkt i pokazał je do dopasowanej wartości z Wykaz kolumna.
Wzór jest następujący:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),")
Podział formuły:
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),")
Tutaj Znak gwiazdki ( * ) jest znakiem wieloznacznym, wyszukiwało " Chipsy " i " Zimne napoje " podciąg w ramach Komórka B5 czyli " Ruffles - Chips " string.
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),")
Na stronie COUNTIF funkcja zwróciła jeden dla każdego dopasowania podłańcucha. Jako " Chipsy " znajduje się w Komórka B5 to zwraca { 1:0 }.
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),")
Na stronie MATCH funkcja zwróciła jeden, ponieważ istnieje tylko jedna wartość " Chipsy ", które pasowały do siebie.
IFERROR(INDEX($E$5:$E$6,1),"")
Na stronie INDEX funkcja zwróciła " Chipsy ", gdyż była to wartość w. Wykaz array.
IFERROR("Chips",")
Tutaj IFERROR Funkcja służy do obsługi błędu, który wystąpi w przypadku braku dopasowań.
Wyjście końcowe: chipy
Uwaga:
Tutaj pokazałem komórkę, która pasowała, ale możesz pokazać dowolne dane wyjściowe, zmieniając metodę JEŚLI funkcje wyjściowe z żądanym wyjściem.
Read More: Excel Formula If Cell Contains Text Then Return Value in Another Cell
5) Zastosuj funkcję EXACT z IF i TEXTJOIN
Jest to kolejne rozwiązanie tego problemu w różnych sytuacjach. Tutaj pobrałem wartość komórki z kolumny Lista z pojedynczym członkiem. Dopasowujemy tę wartość do produktu i pokazaliśmy wszystkie wartości dopasowania w pojedynczej komórce.
Wzór jest następujący:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Podział formuły :
EXACT(C5:C14,$F$5)
Ta część sprawdza, które wartości Zakres C5:14 pasować do Komórka F5 i powrócić TRUE oraz FALSE .
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Ta część zwraca nazwy, dla których otrzymujemy TRUE .
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Wreszcie, to łączy wszystkie nazwy z przecinkiem po każdej nazwie.
Szybkie notatki
Wszystkie te formuły (z wyjątkiem drugiej) są formułami tablicowymi. Oznacza to, że musisz nacisnąć Ctrl+Shift+Enter zamiast naciskać tylko Wejdź na stronę do wprowadzenia tej formuły. Ale jeśli jesteś Office 365 użytkownik, to można je zastosować naciskając tylko Wejdź.
Wniosek
W tym artykule zawęziłem różne formuły dla różnych przypadków, aby zwrócić wartość, jeśli komórka zawiera określony tekst z listy. Mam nadzieję, że udało Ci się znaleźć rozwiązanie Twojego problemu. Proszę zostaw komentarz, jeśli masz jakieś sugestie lub pytania. Ponadto, możesz odwiedzić naszą stronę blog po więcej takich artykułów.