【问题标题】:COUNTIFS with unique values Excel具有唯一值 Excel 的 COUNTIFS
【发布时间】:2017-07-20 21:17:45
【问题描述】:

我正在尝试计算 Excel 表格中出现不同字符串的次数。当前在 SHEET1 中的示例表如下:

我在另一个电子表格中有另一个表格,我想在表格 1 左侧的每个字母中指出右侧出现了多少个“za”、“zc”或“zd”条目。但是,我只想考虑每个条目。

最终结果,在 SHEET2 的 B 行,必须是这样的:

目前我正在使用SUMCOUNTIFS 的组合来完成这项工作。 更具体地说,应用于示例,我使用以下公式:

=SUM(COUNTIFS(Sheet1!A1:A18,Sheet2!$A1,Sheet1!B1:B18,{"za","zc","zd"}))

公式正在做一些预期的事情。但是,它并不是只计算每个条目一次。相反,它对左边的每个字母计数“za”、“zc”或“zd”的每个条目。公式返回的表格如下:

如何更改公式以达到我的预期?

谢谢。

【问题讨论】:

    标签: excel sum countif


    【解决方案1】:

    我最初的想法是:

     =SUM(MIN (1,COUNTIFS(Sheet1!A1:A18,Sheet2!$A1,Sheet1!B1:B18,{"za","zc","zd"})) 
    

    但我无法测试 MIN 是否能正确应用于 COUNTIFS 结果数组。 ;-)

    已编辑:MIN 函数占用 COUNTIFS 数组中的至少 1 个或所有项目,而不是 COUNTIFS 数组中的至少 1 个和每个项目,这是我所担心的。使用

    =MIN(COUNTIFS(Sheet1!A$1:A$18,Sheet2!$A1,Sheet1!B$1:B$18,"za"),1)+MIN(COUNTIFS(Sheet1!A$1:A$18,Sheet2!$A1,Sheet1!B$1:B$18,"zc"),1)+MIN(COUNTIFS(Sheet1!A$1:A$18,Sheet2!$A1,Sheet1!B$1:B$18,"zd"),1)
    

    将获得预期的结果。它有点笨拙,但比数组公式更简单。如果你想要一个数组公式,你可以使用:

    =SUM(FREQUENCY(IFERROR(MATCH({"za","zc","zd"},(IF(Sheet1!$A$1:$A$18=$A5,Sheet1!$B$1:$B$18)),0),""),IFERROR(MATCH({"za","zc","zd"},(IF(Sheet1!$A$1:$A$18=$A5,Sheet1!$B$1:$B$18)),0),"")))
    

    这使用 FREQUENCY 函数获取一组值,并查看另一组值中有多少项落在每个数据范围内。由于您需要文本而不是数字,因此我们使用 MATCH 函数来找出该值第一次出现在列表中的时间,如果没有,则使用 IFERROR 函数返回 ""。 (我们只需要第一次出现,因为您不想知道出现了多少次)。由于它是文本,我们对 FREQUENCY 的两个参数使用相同的输入。

    因此,如果您需要更改要查找的值或要搜索的范围,请务必同时更改两者!或者,您可以在某处列出值,例如在 F1:F3 中,并为此创建一个命名范围,另一个用于 A1:A18,另一个用于 B1:B18。您的公式将如下所示:

    =SUM(FREQUENCY(IFERROR(MATCH(SearchValues,(IF(colA=$A2,colB)),0),""),IFERROR(MATCH(SearchValues,(IF(colA=$A2,colB)),0),"")))
    

    然后,您只需更改命名范围定义,您的公式就会更新。 :-)

    注意:由于这是一个数组公式,因此您必须通过按 CTRL+SHIFT+ENTER 而不是仅按 ENTER 来关闭单元格。当您查看公式栏时,您应该会看到

    {=SUM(FREQUENCY(IFERROR(MATCH(SearchValues,(IF(colA=$A2,colB)),0),""),IFERROR(MATCH(SearchValues,(IF(colA=$A2,colB)),0),"")))}
    

    自己输入花括号是行不通的。 ;-)

    【讨论】:

    • 非常感谢您的帮助。我已经尝试过你的建议,但它只返回 0。
    • 我现在有机会测试数据和公式并更新了我的答案。 :-)
    • 谢谢艾琳。我不能用 Array 公式做到这一点,但它使用 MIN 工作。谢谢。
    【解决方案2】:

    您可以在B1 使用此公式并填写:

    B1:
    =SUMPRODUCT(((Sheet1!$A$1:$A$18=A1)*(Sheet1!$B$1:$B$18= {"za","zc","zd"}))/
      COUNTIFS(Sheet1!$A$1:$A$18,Sheet1!$A$1:$A$18,Sheet1!$B$1:$B$18,Sheet1!$B$1:$B$18))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-28
      • 2019-02-12
      • 2017-08-23
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      相关资源
      最近更新 更多