如何删除数组并将公式应用于每个单元格

How to Remove Arrays and Apply formula into Each Cell

几天以来我一直在使用这个公式,它帮助我从原始数据中找到完全匹配。

早些时候它给我一个错误 #Value and ! 所以我使用 Substitue 函数来消除这些错误。我也需要解决这个问题,这样我就可以删除 subsctitute

我基本上是想在每个单元格上应用这个公式,而不是 Array 我试过了,但是当我删除数组时它不起作用。

我有原始数据,我从中手动复制粘贴相关数据到单元格中,Arrays 打扰它们。

=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(UPPER(IFNA(REGEXEXTRACT(IFERROR(SPLIT(LOWER(B2:B), " "),""), LOWER("^"&TEXTJOIN("$|^", 1, 'Key words'!C1:C500)&"$")),""))),,999^99))),"#VALUE",""),"!",""))

如果还有另一个 Exact Match Function 请分享。非常感谢您的帮助。

希望得到一些帮助。谢谢。

Sheet Link

您可以在 C3 中使用,然后向下拖动:

加入:

=ARRAYFORMULA(UPPER(JOIN("", IFERROR(REGEXEXTRACT(SPLIT(LOWER(B3), " "), LOWER("^"&TEXTJOIN("$|^", 1, 'Match Criteria'!$B:$B)&"$")), ""))))

文本连接:

=ARRAYFORMULA(UPPER(TEXTJOIN("", TRUE, IFERROR(REGEXEXTRACT(SPLIT(LOWER(B3), " "), LOWER("^"&TEXTJOIN("$|^", 1, 'Match Criteria'!$B:$B)&"$")), ""))))

这只会 return 1 个单元格,因为 JOIN/TEXTJOINUPPER 之后,所以它不会写入整列,因此您可以手动输入列中的数据而不影响其他值。

输出:

在 C2 中使用:

={"State"; INDEX(TRIM(FLATTEN(QUERY(TRANSPOSE(
 IFERROR(REGEXEXTRACT(SPLIT(B3:B, ", ", 1)&"", 
 QUERY("×|^"&'Match Criteria'!B2:B100&"$|×",,9^9)))),,9^9))))}

在 D2 中使用:

={"Zip Code"; INDEX(IFNA(VLOOKUP(C3:C, 
 {'Match Criteria'!B2:B, 'Match Criteria'!A2:A}, 2, 0)))}