Excel - повідомляє, чи містить рядок будь-яке значення у стовпці таблиці


3

Фон

Я використовую Excel 2013.

Я назвав таблицю Excel SiteCategories, з кількома стовпцями Категорії, а потім з сайтами в цих стовпцях, наприклад:

enter image description here

Таким чином, ми могли б дістатися до цих цінностей, використовуючи =SiteCategories[Category1]

У мене також є список URL-адрес - думаю, що повні URL-адреси, такі як http://www.sitea.com/page/page.html

Що я хотів би зробити

Для цього гігантського переліку URL-адрес, я хотів би мати стовпці поруч з ними, говорячи, чи є вони в категорії A або категорії B, так:

enter image description here

Я хотів би, щоб відповідні параметри були нечутливими до регістру, оскільки URL-адреси не нормалізувалися. Однак, якщо це полегшує роботу, я можу обробити поля або обернути їх lower() хоч я і уявляю, що цей процес також зможе зробити це.

Де я застряг

Я можу робити збіги і шукати на одному шматку тексту, але я маю проблеми з цим.

По суті, я хочу сказати, що якщо будь-який фрагмент тексту в даному стовпці категорії знаходиться в URL-адресі (нечутливою до регістру), то URL-адреса знаходиться в цій категорії.

Однак більшість MATCH і SEARCH функції не можуть легко підтримувати запит діапазону значень.

Схоже, що я хочу зробити протилежне це питання - в той час, як це рішення використовує шаблон на один термін, щоб знайти його в декількох клітинах, я хочу використовувати декілька текстових елементів як символи проти одного рядка і повертати true, якщо будь-який з них є істинним.

Як я це роблю зараз

В даний час формула, яку я використовую, є OR заяву використовують купу SEARCH Формули, як нижче (де F3 це клітина з 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))) 

Однак, це трохи неспроможне, як вимоги до того, які сайти йдуть в яких категоріях змінюються з часом. Я хотів би мати можливість помістити їх у таблицю, щоб зробити їх легко редагованими, отже, питання.

Відповіді:


1

Можна використовувати формулу масиву, введену за допомогою ctrl + shift + enter. Пошук не є чутливим до регістру так, що має бути добре.

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

Тут налаштування для обробки порожніх рядків у таблиці завдяки Кайлу в коментарях.

=OR(IFERROR(IF(SiteCategories[Category2]<>"",SEARCH(SiteCategories[Category2],A‌​2),0),0))

NICE! Я намагався формулу масиву, але не обертав його OR. Я збираюся перевірити це, а потім, ймовірно, відзначить його як відповідь. Дякую! Я дуже ціную допомогу і гарну коротку формулу.
SeanKilleen

Я запускаю в одне питання - здається, що коли я запускаю це для прикладу Category2, який має деякі пусті клітинки, він відповідає всім. Чи є спосіб, який я можу використовувати структуровану таблицю посилання тільки витягнути стовпці, які фактично мають дані? Або мені потрібно щось обернути?
SeanKilleen

1
@SeanKilleen це формула @ gtwebb, яка враховує пробіли =OR(IFERROR(IF(SiteCategories[Category2]<>"",SEARCH(SiteCategories[Category2],A2),0),0))
Kyle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.