Regex 如何在数组公式中执行多个搜索?

Regex 如何在数组公式中执行多个搜索?,regex,if-statement,google-sheets,array-formulas,google-sheets-formula,Regex,If Statement,Google Sheets,Array Formulas,Google Sheets Formula,我正在努力让一些公式发挥作用,这将大大提高我的工作生活质量。我希望公式对“标题”列和“SKU”列中的关键字执行2次搜索,然后根据我在第二个选项卡中找到的关键字返回结果 上面的截图是我的关键。如果产品在标题列中包含任何关键字,则会自动指定相应的类别 在下面的示例屏幕截图中,我使用公式进行1次搜索。它根据关键字中的关键字列搜索标题列B,如果该单词存在于标题中,它将根据结果所在的行返回结果 我想要实现的是在同一列中进行多个搜索。我希望能够首先按标题进行搜索,如果没有返回结果,那么我希望它通过SKU列根

我正在努力让一些公式发挥作用,这将大大提高我的工作生活质量。我希望公式对“标题”列和“SKU”列中的关键字执行2次搜索,然后根据我在第二个选项卡中找到的关键字返回结果

上面的截图是我的关键。如果产品在标题列中包含任何关键字,则会自动指定相应的类别

在下面的示例屏幕截图中,我使用公式进行1次搜索。它根据关键字中的关键字列搜索标题列B,如果该单词存在于标题中,它将根据结果所在的行返回结果

我想要实现的是在同一列中进行多个搜索。我希望能够首先按标题进行搜索,如果没有返回结果,那么我希望它通过SKU列根据关键列C&D中的关键字和类别进行搜索

在下面的屏幕截图中,我尝试将其包装在IF语句中

IF(TITLESEARCH=""),(SKUSEARCH),(TITLESEARCH)
我得到的结果似乎适用于IF语句的第一部分。它返回的结果对于IF语句的第一部分是正确的,但是第二部分似乎工作不正常,我不知道为什么。它应该分配的配件类别,它只是给我假

如果有人想看一下,这里有一个电子表格的链接。我已经为此绞尽脑汁好几天了,我觉得我已经走了很长的路

我对谷歌工作表和excel公式非常陌生,尤其是在这个级别上,所以请温柔一点。我觉得我犯的错误可能是显而易见的

这就是我的公式的基础

=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单元格,然后把它拖下来,结果留下了一大堆空白单元格。我不知道这是怎么回事?对不起,我是个大傻瓜。这是一个真正的公式。例如,单细胞解决方案。无需拖拽。您只需将其粘贴到C2中并完成—请看这里:这太棒了。非常感谢你!如果我向数组键添加更多术语,它会填充主工作表中的列吗?