【问题标题】:Google Sheets: Sum if value is round numberGoogle表格:如果值为整数,则求和
【发布时间】:2021-01-17 14:03:43
【问题描述】:

我确信有一个非常简单的解决方案,但我无法做到。

我正在尝试对数字列表求和,但仅对整数/整数值求和。

例如A列:

1
1.5
3
2.4
2

整数之和

1 + 3 + 2 = 6

有什么提示吗?

【问题讨论】:

    标签: google-sheets sum integer google-sheets-formula formula


    【解决方案1】:

    假设您的号码列表从 A2 开始并向下延伸(即 A2:A)。你可以使用这个:

    =SUM(FILTER(A2:A,A2:A=INT(A2:A)))
    

    用简单的英语,这读作如下:“仅对 A2:A 中的那些数字求和,其中原始值与该值的仅整数部分相同。”

    【讨论】:

      【解决方案2】:

      试试:

      =sumproduct((A1:A5)*(A1:A5=int(A1:A5)))
      

      这也适用于 Excel

      【讨论】:

        【解决方案3】:

        使用点检测:

        =INDEX(SUM(IF(REGEXMATCH(""&A:A, "\."),,A:A)))
        

        【讨论】:

          【解决方案4】:

          另一种解决方法,可以使用SEARCH搜索小数点:

          =SUM(A1:A)-SUM(FILTER(A1:A,SEARCH(".",TO_TEXT(A1:A))))
          

          =SUM(FILTER(A1:A,NOT(ISNUMBER(SEARCH(".",A1:A)))))

          正如JvdV 在他的评论中提到的那样。

          【讨论】:

          • 恕我直言,这有点太棘手了。如果A510 怎么办?我的猜测是 OP 有非常简化的数据供我们使用。
          • @JvdV 答案已修改,谢谢!我赞成你的,因为他们都在回答同一个问题。感谢您的反馈
          • 抱歉,小数点逗号还在。不是故意的,但它展示了我之前关于硬编码小数点或逗号的观点哈哈
          • 非常感谢您的反馈和支持
          • 刚想出=SUM(FILTER(A1:A;ISERROR(SEARCH(".";A1:A)))) =)。尽情享受您一天的剩余时间,在 SO 上与您相见。
          【解决方案5】:

          试试QUERY():

          =SUM(QUERY(A:A,"where A matches '\d+'"))
          

          FILTER():

          =SUM(FILTER(A:A,MOD(A:A,1)=0))
          

          注意:第一个选项利用了在QUERY() 的“where”子句中使用正则表达式的可能性。如果您想考虑正负整数,请使用=SUM(QUERY(A:A,"where A matches '-?\d+'"))

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-08-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多