Excel - Powiedz, czy ciąg zawiera jakąkolwiek wartość w kolumnie tabeli

3

tło

Korzystam z programu Excel 2013.

Mam tabelę programu Excel o nazwie SiteCategories, z kilkoma kolumnami kategorii, a następnie witryny w tych kolumnach, takie jak:

wprowadź opis zdjęcia tutaj

Możemy więc uzyskać te wartości za pomocą =SiteCategories[Category1]

Mam też listę adresów URL - pomyśl pełne adresy URL, takie jak http://www.sitea.com/page/page.html

Co chciałbym zrobić

W przypadku tej olbrzymiej listy adresów URL chciałbym, aby obok nich były kolumny z informacją, czy należą one do kategorii A, czy kategorii B:

wprowadź opis zdjęcia tutaj

Chciałbym, aby dopasowanie nie uwzględniało wielkości liter, ponieważ adresy URL nie są znormalizowane. Jednakże, jeśli to ułatwi, mogę przetwarzać pola lub zawijać je, lower()chociaż wyobrażam sobie, że ten proces byłby w stanie to zrobić.

Gdzie utknąłem

Mogę dopasowywać i wyszukiwać jeden fragment tekstu, ale mam problem z zrobieniem tego w zakresie tekstu.

Zasadniczo chcę powiedzieć, jeśli dowolny fragment tekstu w kolumnie danej kategorii znajduje się w adresie URL (bez rozróżniania wielkości liter), wówczas adres URL znajduje się w tej kategorii.

Jednak większość MATCHi SEARCHfunkcji nie wydają się łatwo obsługiwać zapytań zakres wartości.

Wygląda na to, że chcę zrobić coś przeciwnego do tego pytania - podczas gdy w tym rozwiązaniu do znalezienia go w wielu komórkach używa się symbolu wieloznacznego, chcę używać tekstu w wielu komórkach jako symboli wieloznacznych względem jednego łańcucha i zwracać wartość true, jeśli którekolwiek z nich są prawdziwe.

Jak ja to teraz robię

Obecnie formuła, której używam, jest ORwyrażeniem używającym szeregu SEARCHformuł, takich jak poniżej (gdzie F3jest komórka z adresem URL):

=OR(ISNUMBER(SEARCH("sitea.com",F3)), ISNUMBER(SEARCH("siteb.com",F3)),ISNUMBER(SEARCH("sitec.com",F3)), ISNUMBER(SEARCH("sited.com",F3)),ISNUMBER(SEARCH("sitee.com",F3))) 

Jest to jednak trochę nie do utrzymania, ponieważ wymagania dotyczące tego, które witryny wchodzą w jakie kategorie zmieniają się z czasem. Chciałbym móc umieścić je w tabeli, aby można je było łatwo edytować, stąd pytanie.

SeanKilleen
źródło

Odpowiedzi:

1

Możesz użyć formuły tablicowej wprowadzonej za pomocą klawiszy Ctrl + Shift + Enter. W wyszukiwaniu nie jest rozróżniana wielkość liter, więc powinno być dobrze.

=OR(IFERROR(SEARCH(SiteCategories[Category1],A2),0))

Tutaj skonfigurowano obsługę pustych wierszy w tabeli dzięki Kyle'owi w komentarzach.

=OR(IFERROR(IF(SiteCategories[Category2]<>"",SEARCH(SiteCategories[Category2],A‌​2),0),0))
gtwebb
źródło
MIŁY! Próbowałem formuły tablicowej, ale jej nie pakowałem OR. Mam zamiar to przetestować, a następnie prawdopodobnie oznaczę to jako odpowiedź. Dzięki! Naprawdę doceniam pomoc i miłą, zwięzłą formułę.
SeanKilleen,
Występuje jeden problem - wydaje się, że kiedy uruchomię to dla powyższego przykładu Kategoria 2, który ma kilka pustych komórek, pasuje do wszystkiego. Czy istnieje sposób, w jaki mogę użyć odwołania do tabeli strukturalnej, aby pobrać tylko kolumny zawierające dane? Czy też muszę coś w to owinąć?
SeanKilleen,
1
@SeanKilleen to formuła @ gtwebb, uwzględniająca puste miejsca=OR(IFERROR(IF(SiteCategories[Category2]<>"",SEARCH(SiteCategories[Category2],A2),0),0))
Kyle