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:
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:
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ść MATCH
i SEARCH
funkcji 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 OR
wyrażeniem używającym szeregu SEARCH
formuł, takich jak poniżej (gdzie F3
jest 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.
źródło
OR
. Mam zamiar to przetestować, a następnie prawdopodobnie oznaczę to jako odpowiedź. Dzięki! Naprawdę doceniam pomoc i miłą, zwięzłą formułę.=OR(IFERROR(IF(SiteCategories[Category2]<>"",SEARCH(SiteCategories[Category2],A2),0),0))