Я работаю над тем, чтобы заставить работать какую-то формулу, которая значительно улучшит мое качество жизни на работе. Я хочу, чтобы формула выполняла 2 поиска ключевых слов, которые будут присутствовать в моем столбце «Название» и в моем столбце «SKU», а затем возвращала результаты на основе ключа, который я нашел на второй вкладке.
Скриншот выше — мой ключ. Если продукты содержат какое-либо из ключевых слов в столбце заголовка, соответствующая категория назначается автоматически.
На приведенном ниже примере снимка экрана у меня есть формула, работающая для выполнения 1 поиска. Он выполняет поиск в столбце «Заголовок» (B) по столбцу «Ключевые слова» в ключе, и если слово существует в заголовке, он возвращает результат на основе строки, в которой был результат.
Чего я хочу добиться, так это выполнить несколько поисков в одном столбце. Я хочу иметь возможность сначала выполнить поиск по «Заголовку», если результаты не возвращаются, я хочу, чтобы он выполнял поиск через столбец «SKU» по ключевым словам и категориям в ключе (столбцы C и D)
На приведенном ниже снимке экрана я попытался обернуть его оператором IF.
IF(TITLESEARCH=""),(SKUSEARCH),(TITLESEARCH)
Результаты, которые я получаю, похоже, работают для первой части оператора 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))))))))
удалите все свои формулы и просто используйте:
=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))), ))
это настоящая формула массива, например. одноклеточный раствор, например. не нужно тянуть вниз. вы просто вставляете его в C2 и готово - смотрите здесь: docs.google.com/spreadsheets/d/…
Это восхитительно. Большое спасибо! Если я добавлю больше терминов в ключ массива, будет ли он заполнять столбец на основном листе?
Эй, не могли бы вы объяснить, как заставить это работать? Я попытался вставить его в ячейку C2 и перетащить вниз, у меня осталось множество пустых ячеек. Я не уверен, как это работает? (Извините, я довольно большой нуб)