【问题标题】:Google Sheets- Countif Formula Count Cells specific text Multiple Criteria谷歌表格 - Countif 公式计数单元格特定文本多个标准
【发布时间】:2021-06-25 11:25:10
【问题描述】:

我目前有一个谷歌表,其中我根据参考表“Ref”和状态列 W 计算 L 列中的值

IF(AND(COUNTIF(Ref!$A$1:$A$100,L2),W2 <>"Cancelled",W2 <>"Postponed",W2 <> "Dropped"),"Y", "N")

然而,L 列中的值现在发生了变化。不是每个单元格中定义的值,而是每个单元格中的一串值,排列太大而无法进入我的参考表。

我如何仍然计算 L 列中的值以正确返回“Y”或“N”

我试过了

=IF(AND(COUNTIF(L2,{"*LEE*","*LON*","*LAM*"}),W2 <>"Cancelled",W2 <>"Postponed",W2 <> "Dropped"),"Y", "N")

=IF(AND(COUNTIF(Ref!$A$1:$A$100,"*"&L2&"*"),W2 <>"Cancelled",W2 <>"Postponed",W2 <> "Dropped"),"Y", "N")

=IF(AND(COUNTIF(L2,{"*LEE*","*LON*","*LAM*"}),W2 <>"Cancelled",W2 <>"Postponed",W2 <> "Dropped"),"Y", "N")

我需要计算的值将包含以下短语之一“LEE”、“LON”、“LAM”。

输入到 L 列的新值如下所示

<Area1: Y - LEE>,<Area2: Y - MIL>
<Area3: WF>,<Area4: Y - MUN>
<Area1: YY - MUN>,<Area2: YY - LON>,<Area3: YY-LAM>

所以我需要能够在单元格中搜索 3 个短语中的 1 个。

非常感谢任何帮助

谢谢

【问题讨论】:

  • 请分享指向您的电子表格副本的链接,并设置权限(在创建链接时)为“知道链接的任何人...”和“编辑者”。就目前而言,这里的志愿者贡献者甚至需要在开始之前手动将数据输入到他们自己的工作表中,这是一个很大的威慑力。帮助我们帮助您
  • 彻底同意@Broly。

标签: google-sheets excel-formula google-sheets-formula


【解决方案1】:

我有一个可行的解决方案,在单个单元格中使用 arrayformula()。

如果我理解正确,您似乎正在检查 Col L 以查看单元格是否包含 LEE LON 或 LAM。您还要检查它们是否出现在 Ref!$A$1:$A$100 中。

在包含 col F 和 Col W(状态)的工作表上,在第 1 行尝试此操作(我使用过 AB1):

=arrayformula({"Check";if(if(L2:L<>"",regexreplace(regexreplace(regexreplace(flatten(query(transpose({if(regexmatch(split(regexreplace(L2:L,"[^A-Z]",char(9999)),char(9999)),"LAM|LEE|LON"),split(regexreplace(L2:L,"[^A-Z]",char(9999)),char(9999)),"|")}),"",9^9)),"\ ",""),"(\|)+","\|"),"^\||\|$",),)<>"",if(REGEXMATCH(join(" ",Ref!A2:A),if(L2:L<>"",regexreplace(regexreplace(regexreplace(flatten(query(transpose({if(regexmatch(split(regexreplace(L2:L,"[^A-Z]",char(9999)),char(9999)),"LAM|LEE|LON"),split(regexreplace(L2:L,"[^A-Z]",char(9999)),char(9999)),"|")}),"",9^9)),"\ ",""),"(\|)+","\|"),"^\||\|$",),)),if(regexmatch(W2:W,"Cancelled|Postponed|Dropped"),"N","Y"),),)})

为了展示工作,我有三个帮助列,AD、AE 和 AF:

AD1 从 col L 获取 LAM LEE 或 LON:

=arrayformula({"LAM|LEE|LON entry";if(L2:L<>"",regexreplace(regexreplace(regexreplace(flatten(query(transpose({if(regexmatch(split(regexreplace(L2:L,"[^A-Z]",char(9999)),char(9999)),"LAM|LEE|LON"),split(regexreplace(L2:L,"[^A-Z]",char(9999)),char(9999)),"|")}),"",9^9)),"\ ",""),"(\|)+","\|"),"^\||\|$",),)})

AE1 检查 col AD​​ 中的值以查看它们是否出现在 Ref!A2:A 中:

=arrayformula({"LAM|LEE|LON match";if(AD2:AD<>"",REGEXMATCH(join(" ",Ref!A2:A),AD2:AD),)})

AF1 检查 col AE 中的值是否为真,然后检查 col W 中的状态:

=arrayformula({"Check";if(AE2:AE=true,if(regexmatch(W2:W,"Cancelled|Postponed|Dropped"),"N","Y"),)})

这 3 个辅助列组合在 AB1 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多