Как сделать несколько запросов в формуле массива? - PullRequest
0 голосов
/ 22 мая 2019

Я работаю над тем, чтобы заставить работать некоторую формулу, которая значительно улучшит мое качество жизни на работе. Я хочу, чтобы по формуле было выполнено 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 Sheets и превосходной формуле (особенно на этом уровне), поэтому, пожалуйста, будьте осторожны. Такое ощущение, что ошибка, которую я совершаю, может быть очевидной.

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))))))))

1 Ответ

1 голос
/ 22 мая 2019

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

=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

...