如何在数组公式中进行多次搜索?
How to do multiple searches in an array formula?
我正在努力使一些公式起作用,这将大大提高我的工作生活质量。我希望公式 运行 2 搜索将出现在我的 "Title" 列和我的 "SKU" 列中的关键字,然后 return 基于我找到的键的结果第二个标签。
上面的截图是我的钥匙。如果产品包含标题列中的任何关键字,则会自动分配相应的类别。
在下面的示例屏幕截图中,我的公式可以进行 1 次搜索。它根据键中的关键字列搜索 "Title" 列 (B),如果该词存在于标题中,它会根据结果所在的行返回结果。
我想要实现的是在同一列中进行多次搜索。我希望能够首先通过 "Title" 进行搜索,如果没有结果被 returned 那么我希望它通过 "SKU" 列针对键中的关键字和类别进行搜索( C 和 D 列)
在下面的屏幕截图中,我尝试将其包装在 IF 语句中
IF(TITLESEARCH=""),(SKUSEARCH),(TITLESEARCH)
我得到的结果似乎适用于 IF 语句的第一部分。它返回的结果对于 IF 语句的第一部分是正确的,但第二部分似乎没有正常工作,我不明白为什么。在应该分配类别 "Accessories" 的地方,它只是给我 "FALSE"。
如果有人想看一下,这里是 link 电子表格。我已经为此绞尽脑汁好几天了,我觉得我已经走了很长一段路。
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))), ))
我正在努力使一些公式起作用,这将大大提高我的工作生活质量。我希望公式 运行 2 搜索将出现在我的 "Title" 列和我的 "SKU" 列中的关键字,然后 return 基于我找到的键的结果第二个标签。
上面的截图是我的钥匙。如果产品包含标题列中的任何关键字,则会自动分配相应的类别。
在下面的示例屏幕截图中,我的公式可以进行 1 次搜索。它根据键中的关键字列搜索 "Title" 列 (B),如果该词存在于标题中,它会根据结果所在的行返回结果。
我想要实现的是在同一列中进行多次搜索。我希望能够首先通过 "Title" 进行搜索,如果没有结果被 returned 那么我希望它通过 "SKU" 列针对键中的关键字和类别进行搜索( C 和 D 列)
在下面的屏幕截图中,我尝试将其包装在 IF 语句中
IF(TITLESEARCH=""),(SKUSEARCH),(TITLESEARCH)
我得到的结果似乎适用于 IF 语句的第一部分。它返回的结果对于 IF 语句的第一部分是正确的,但第二部分似乎没有正常工作,我不明白为什么。在应该分配类别 "Accessories" 的地方,它只是给我 "FALSE"。
如果有人想看一下,这里是 link 电子表格。我已经为此绞尽脑汁好几天了,我觉得我已经走了很长一段路。
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))), ))