Как выполнить множественный поиск в формуле массива?

Я работаю над тем, чтобы заставить работать какую-то формулу, которая значительно улучшит мое качество жизни на работе. Я хочу, чтобы формула выполняла 2 поиска ключевых слов, которые будут присутствовать в моем столбце «Название» и в моем столбце «SKU», а затем возвращала результаты на основе ключа, который я нашел на второй вкладке.

https://gyazo.com/e6a3914ea9a96f8dcdce47d9ec704b37

Скриншот выше — мой ключ. Если продукты содержат какое-либо из ключевых слов в столбце заголовка, соответствующая категория назначается автоматически.

На приведенном ниже примере снимка экрана у меня есть формула, работающая для выполнения 1 поиска. Он выполняет поиск в столбце «Заголовок» (B) по столбцу «Ключевые слова» в ключе, и если слово существует в заголовке, он возвращает результат на основе строки, в которой был результат.

https://gyazo.com/63f98251dac757378ceadbfe3e4167a6

Чего я хочу добиться, так это выполнить несколько поисков в одном столбце. Я хочу иметь возможность сначала выполнить поиск по «Заголовку», если результаты не возвращаются, я хочу, чтобы он выполнял поиск через столбец «SKU» по ключевым словам и категориям в ключе (столбцы C и D)

На приведенном ниже снимке экрана я попытался обернуть его оператором IF.

IF(TITLESEARCH=""),(SKUSEARCH),(TITLESEARCH)

enter image description here

Результаты, которые я получаю, похоже, работают для первой части оператора IF. Это возвращает мне результаты, которые верны для первой части оператора IF, но вторая часть, похоже, работает неправильно, и я не могу понять, почему. Там, где он должен назначать категорию «Аксессуары», вместо этого он просто дает мне «ЛОЖЬ».

Вот ссылка на табличку, если кому интересно. Я ломаю голову над этим уже несколько дней и чувствую, что проделал долгий путь.

https://docs.google.com/spreadsheets/d/1548QMP5qeAIFrbraGD_lkJkQWzKF4Td6FR1KkcOHHJM/edit?usp=sharing

Я новичок в Google Таблицах и формулах Excel (особенно на этом уровне), поэтому будьте осторожны. Мне кажется, что ошибка, которую я совершаю, может быть очевидной.

https://exceljet.net/formula/categorize-text-with-keywords

На этом основана моя формула.

=IF(ARRAYFORMULA(INDEX('Array Key'!B:B,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!A:A,B234)),0)))="",(ARRAYFORMULA(INDEX('Array Key'!D:D,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!C:C,A234)),0),(ARRAYFORMULA(INDEX('Array Key'!B:B,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!A:A,B234)),0))))))))
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
520
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

удалите все свои формулы и просто используйте:

=ARRAYFORMULA(IF(LEN(B2:B), IF(IFERROR(VLOOKUP(REGEXEXTRACT(A2:A, 
 TEXTJOIN("|", 1, 'Array Key'!C3:C)), 
 'Array Key'!C3:D, 2, 0))="",
 IFERROR(VLOOKUP(REGEXEXTRACT(B2:B, 
 TEXTJOIN("|", 1, 'Array Key'!A3:A)), 
 'Array Key'!A3:B, 2, 0)),
 IFERROR(VLOOKUP(REGEXEXTRACT(A2:A, 
 TEXTJOIN("|", 1, 'Array Key'!C3:C)), 
 'Array Key'!C3:D, 2, 0))), ))

0

Эй, не могли бы вы объяснить, как заставить это работать? Я попытался вставить его в ячейку C2 и перетащить вниз, у меня осталось множество пустых ячеек. Я не уверен, как это работает? (Извините, я довольно большой нуб)

Maladorf 22.05.2019 19:24

это настоящая формула массива, например. одноклеточный раствор, например. не нужно тянуть вниз. вы просто вставляете его в C2 и готово - смотрите здесь: docs.google.com/spreadsheets/d/…

player0 22.05.2019 19:27

Это восхитительно. Большое спасибо! Если я добавлю больше терминов в ключ массива, будет ли он заполнять столбец на основном листе?

Maladorf 22.05.2019 19:37

Другие вопросы по теме