【问题标题】:Array formula to compare two multi-word text strings比较两个多字文本字符串的数组公式
【发布时间】:2021-11-23 17:55:55
【问题描述】:

我想将一张纸上两列(J 和 O)中的文本字符串与另一张纸上的项目列表($N$5:$N$23)进行比较。我希望比较能够搜索 J 和列表或 O 和列表之间是否有任何单词匹配(一些字符串是多词)。当我在我想要结果的列中的每个单元格中使用它时,这个公式对我有用(从第 3 行开始):

=IF(SUMPRODUCT(ISNUMBER(SEARCH(TRANSPOSE(Lists!$N$5:$N$23),J3&O3)))>0,"YES","NO")

但是,我现在想使用 ARRAYFORMULA 将公式填充到列中,而不是每个单元格中都有该公式。看来您不能在 Google 表格中将 SUMPRODUCT 与数组一起使用,因此我现在使用空格分隔符将 J 和 O 列中的文本分开,并使用 ARRAYFORMULA 将其与列表 $N$5:$N$23 中的值进行比较-- 数组中的数组。我将两个结果相加,看看它们的总和是否大于 0,在这种情况下,我返回“YES”。

ARRAYFORMULA(IF(
   SUM(ARRAYFORMULA(IFERROR({SEARCH(SPLIT(J3:J," "),Lists!$N$5:$N$23)},0)))+
   SUM(ARRAYFORMULA(IFERROR({SEARCH(SPLIT(O3:O," "),Lists!$N$5:$N$23)},0)))
   >0,"YES","NO"))

此数组公式不想向下填充(从第 3 行开始)。它在第 3 行给了我一个值,但没有更多。

问题:

  • 为什么这个数组公式没有填写?
  • 是否有更好/更有效的方法来进行这种比较? (也许有查询?)

这是 Google 表格的副本。我试图将新的数组公式放入单元格数据库!P3。数据库表的 Q 列有第一个似乎工作正常的公式。 https://docs.google.com/spreadsheets/d/1QlAVv1FuvfXgD4QvCoSFR9Cycf87lJUk33eFWfoe404/edit?usp=sharing

【问题讨论】:

  • 分享您的工作表副本/样本
  • 感谢您的建议。完成。

标签: arrays regex google-sheets google-sheets-formula textjoin


【解决方案1】:

尝试:

=INDEX(IF(REGEXMATCH(J3:J&" "&O3:O, "\b("&TEXTJOIN("|", 1, Lists!N5:N23)&")\b"), "YES", "NO"))

【讨论】:

  • 有效!就像魔术一样。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
相关资源
最近更新 更多