我正在努力使某些公式起作用,这将大大改善我的工作质量。我希望公式对我的“标题”列和“ SKU”列中存在的关键字进行2次搜索,然后根据我位于第二个选项卡中的键返回结果。
上面的屏幕截图是我的关键。如果产品的标题栏中包含任何关键字,则将自动分配相应的类别。
在下面的示例屏幕截图中,我有要进行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))))))))
答案 0 :(得分: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))), ))