Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何使用索引、匹配和搜索在同一单元格中返回多个结果_Google Sheets_Google Sheets Formula_Array Formulas_Gs Vlookup_Textjoin - Fatal编程技术网

Google sheets 如何使用索引、匹配和搜索在同一单元格中返回多个结果

Google sheets 如何使用索引、匹配和搜索在同一单元格中返回多个结果,google-sheets,google-sheets-formula,array-formulas,gs-vlookup,textjoin,Google Sheets,Google Sheets Formula,Array Formulas,Gs Vlookup,Textjoin,我有一个工作索引、匹配、搜索公式,可以在我的产品标题中搜索我在某个关键字中确定的特定术语,如果没有找到结果,它也可以使用不同的关键字搜索我的产品SKU 目前,该公式仅给出它在我的键中找到的第一个结果,但我希望它返回尽可能多的结果,所有结果都用管道或逗号分隔 这是给我一个结果的工作公式 =IF((ARRAYFORMULA(INDEX('Array Key')!$J:$J,MATCH(TRUE,ISNUMBER(SEARCH('Array Key')!$I:$I,$B2)),0)))=”,(ARRA

我有一个工作索引、匹配、搜索公式,可以在我的产品标题中搜索我在某个关键字中确定的特定术语,如果没有找到结果,它也可以使用不同的关键字搜索我的产品SKU

目前,该公式仅给出它在我的键中找到的第一个结果,但我希望它返回尽可能多的结果,所有结果都用管道或逗号分隔

这是给我一个结果的工作公式

=IF((ARRAYFORMULA(INDEX('Array Key')!$J:$J,MATCH(TRUE,ISNUMBER(SEARCH('Array Key')!$I:$I,$B2)),0)))=”,(ARRAYFORMULA(INDEX('Array Key')!$L:$L,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$K:$A2)),0))),(ARRAYFORMULA(INDEX('Array('Array Key'!$I:$J,MATCH(TRUE,ISNUMBER)(SEARCH('Array Key'!$I:$I,$B2)),0)))),

如果我能让它工作的话,那就太棒了。如果有人想看到我的电子表格工作,这里有一个链接。请随意进行任何编辑

我试着使用下面的公式,但它并不完全符合我的要求

=IF((数组格式(INDEX('Array Key')!$F:$F,MATCH(TRUE,ISNUMBER(SEARCH('Array Key')!$E:$E,$B2)),0)))=”,(数组格式(INDEX('Array Key')!$H:$H,MATCH(TRUE,ISNUMBER(SEARCH('Array Key')!$G:$G,$A2))),(数组格式(INDEX('Array Key')!$F:$F,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$E,$E,$B2)),0))和(数组格式)('Array Key'!$H:$H,匹配(TRUE,ISNUMBER(搜索('Array Key'!$G:$G,$A2)),0)))

这个公式再次搜索第二个键并连接所有结果。但是,我得到了重复的结果,它仍然只返回找到的第一个结果。

如果这样:


然后,D2单元格将是:

=ARRAYFORMULA(TEXTJOIN(" | ", 1, UNIQUE({
 IFERROR(VLOOKUP(TRANSPOSE(IFERROR(REGEXEXTRACT(SPLIT(B2, " "), 
 TEXTJOIN("|", 1, 'Array Key'!E$3:E)))), 'Array Key'!E$3:F, 2, 0));
 IFERROR(VLOOKUP(TRANSPOSE(IFERROR(REGEXEXTRACT(SPLIT(A2, " "), 
 TEXTJOIN("|", 1, 'Array Key'!G$3:G)))), 'Array Key'!G$3:H, 2, 0))})))

如果是这样:


然后,D2单元格将是:

=ARRAYFORMULA(TEXTJOIN(" | ", 1, UNIQUE({
 IFERROR(VLOOKUP(TRANSPOSE(IFERROR(REGEXEXTRACT(SPLIT(B2, " "), 
 TEXTJOIN("|", 1, 'Array Key'!E$3:E)))), 'Array Key'!E$3:F, 2, 0));
 IFERROR(VLOOKUP(TRANSPOSE(IFERROR(REGEXEXTRACT(SPLIT(A2, " "), 
 TEXTJOIN("|", 1, 'Array Key'!G$3:G)))), 'Array Key'!G$3:H, 2, 0))})))

你应该研究一下
TEXTJOIN()
函数:)我已经研究了一点,只是不知道如何将它应用到我的公式中:(你为什么要标记
Excel
,原因是现在另一个用户从问题中删除了它。如果它没有相关性,你应该忽略它。D2单元格的期望输出应该是什么?D2单元格的期望输出应该是战争|恐怖,因为在单元格E25和单元格E41的数组键选项卡中,死亡有两个类别,我可以你想在单元格D2中赋值你应该研究一下
TEXTJOIN()
function:)我已经研究了一点,只是不知道如何将它应用到我的公式中:(你为什么要标记
Excel
,原因是现在另一个用户从问题中删除了它。如果它没有相关性,你应该忽略它。D2单元格的期望输出应该是什么?D2单元格的期望输出应该是战争|恐怖,因为在单元格E25和单元格E41的数组键选项卡中,死亡有两个类别,我可以我想把它分配到D2单元,这太棒了。这正是我想要的。非常感谢你的帮助!嗨,我刚刚在休息了一会儿后又拿起了这个项目,我想知道你是否能帮上忙?这是我正在做的工作表的链接,我不太明白为什么我会得到一些结果。例如我用深灰色突出显示的“星球大战”产品没有指定主题,即使标题中有“星球大战”一词(如第103行的“星球大战”数组键选项卡所示)现在检查一下你的工作表这太棒了。这正是我想要的。非常感谢你的帮助!嗨,我刚刚在休息了一会儿后又拿起了这个项目,我想知道你是否能帮上忙?这里有一个链接到我正在工作的工作表,我不太明白为什么我会得到一些结果。例如,《星球大战》“我用深灰色突出显示的产品没有指定主题,即使标题中有“星球大战”一词(正如您在第103行的“星球大战”数组键选项卡中看到的),现在检查您的工作表