【问题标题】:Sum under two conditions在两个条件下求和
【发布时间】:2020-02-26 23:11:04
【问题描述】:

假设有以下列:

Close 1   Close 2
$4.28       $4.90
$37.26      $33.87
$5.34       $5.16
$887.06     $734.70
$2.68       $2.55
$14.57      $13.51
$16.76      $10.82
$1.60       $1.18
$5.15       $4.09

这是我的数据库的一部分。假设 Close 1 是 1 月 1 日的收盘价,Close 2 是 1 月 2 日的收盘价。上表中的每一行都是不同的股票。我知道如何用

总结每一行的(Close 2 - Close 1)/Close 1
=SUM(ARRAYFORMULA(Database!$N$2:$N$51-Database!$L$2:$L$51)/Database!$L$2:$L$51))

我现在只想在特定条件下求和。我想做两个总和,第一个只考虑 (Close 2 - Close 1)/Close 1 小于 0 的行和第二个 (Close 2 - Close 1)/Close 1 大于或等于 0 的行。我该怎么做?

【问题讨论】:

    标签: google-sheets sum google-sheets-formula array-formulas google-sheets-query


    【解决方案1】:

    我想做两个总和,其中第一个只考虑 (Close 2 - Close 1)/Close 1 小于 0 的行

    否定:

    =SUM(ARRAYFORMULA(QUERY(IFERROR((A2:A-B2:B)/A2:A), 
     "where Col1 contains '-'", 0)))
    

    第二个 (Close 2 - Close 1)/Close 1 大于或等于 0

    积极的:

    =SUM(ARRAYFORMULA(QUERY(IFERROR((A2:A-B2:B)/A2:A), 
     "where not Col1 contains '-'", 0)))
    

    【讨论】:

    • 不确定是否理解您在这里的建议。可以再开发一点吗?
    • 您有更容易理解的替代公式吗?即使它使公式更长
    • 基本上你是在数值列中寻找减号并在最终总和之前将它们过滤掉
    • 替代:=SUM(ARRAYFORMULA(QUERY(IFERROR((A2:A-B2:B)/A2:A), "where Col1 >0", 0)))
    • 你在单行还是在两列上这样做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    相关资源
    最近更新 更多