【问题标题】:How to force sumif() to use string matching (instead of numerical matching)?如何强制 sumif() 使用字符串匹配(而不是数字匹配)?
【发布时间】:2021-06-06 05:45:35
【问题描述】:

如何强制 Google 表格 sumif() 公式使用字符串匹配?我在 string 数据上使用了 string 标准,并且不希望使用数字匹配。

示例数据:

1.1     1
1.1     2
1.10    4
1.11    5

对上述数据执行 sumif 得到值 7,而不是 3,因为正在匹配“1.10”行:

SUMIF(A1:A,"1.1",B1:B)

我可以使用 query() 获得想要的结果

query(A1:B, "select sum(B) where A matches '1.1' label sum(B) ''")

但在我复杂的实际用例中,我觉得它并不直观,如果可能,我更愿意使用 sumif()。

在线示例:

https://docs.google.com/spreadsheets/d/1s41B3pIWixkiAh7DFvGmcJzrr6gjmQlcO3yYrvuFYzc/edit?usp=sharing

【问题讨论】:

    标签: google-sheets spreadsheet sumifs


    【解决方案1】:

    使用"'1.1"

    =SUMIF(A1:A,"'1.1",B1:B)
    

    强制文本匹配。

    【讨论】:

      【解决方案2】:

      尝试在范围数组和搜索中添加一个非数字字符:

      =ArrayFormula(SUMIF(A1:A&"x","1.1x",B1:B))

      【讨论】:

        【解决方案3】:

        你可以试试filter函数,我也觉得惊讶sumif会混淆1.1 vs 1.10"

        =sum(FILTER(B:B,A:A=E7))
        

        【讨论】:

          【解决方案4】:

          TO_TEXT 函数在这里很有用:

          =arrayformula(sumif(to_text(A1:A),"1.1",B1:B))

          需要将其放入arrayformula 以将列中的匹配值相加。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-08-17
            • 1970-01-01
            • 2013-07-11
            • 1970-01-01
            • 2017-05-07
            • 1970-01-01
            • 2011-05-20
            • 1970-01-01
            相关资源
            最近更新 更多