【问题标题】:Sum values across a row if they are in certain columns, and if adjacent cells have a specific value如果它们在某些列中,并且相邻单元格具有特定值,则跨行求和
【发布时间】:2018-12-20 14:06:18
【问题描述】:

数据截图链接:https://imgur.com/a/CrRLb6d

我正在处理一个包含 4 列的循环组的 excel 文件(参见图片:列标题是 Time、Med1、Med2、Med3)。在左侧,在 B 列中,我想要对一行中的值求和,但唯一应该求和的值是那些符合条件的值:

  1. 该值在 Med1 列(所有具有 Med1 标题的列)中,并且;
  2. 同一行(Med1 列左侧的 1 列)上的相邻时间值是 1.5 或更大。

因此,例如查看第 10 行(在示例中突出显示),E10 和 I10 中的 Med1 值应在 B10 中求和(因为它们各自在 D10 和 H10 中的时间值分别为 1.75 和 1.5,即 >= 1.5),但不是M10中的Med1值(L10中的时间值为1.25,不符合上述第二条标准)。

一些附加信息: 这些“块”中的每一个都有 4 列的固定宽度,中间没有间隙(在实际的 excel 文件中,这些块有 240 个)。 Time 的模式继续如示例所示,始终从 0 开始,与前一个块相比低一行。

我尝试过的:SUMIF、SUMIFS 和 INDEX 函数,但如果我尝试组合条件,我会收到 #VALUE 错误(特别是因为它不是需要检查一行的 1 个时间列值,而是多个时间列行中的值)。

以前,我只是想将所有 Med1 值汇总在一行上(不考虑相邻的 Time 值),如下所示:

=SUMIF($D$2:$O$2;"Med1";D3:O3)

但是,使用相邻时间值的第二个标准,我似乎无法让它工作。任何帮助表示赞赏!

【问题讨论】:

    标签: excel excel-formula sumifs


    【解决方案1】:

    如果块都在每个块旁边,如图所示,并且您要求和的值始终是时间值右侧的 1 个单元格,并且只有时间值可以 >= 1.5(所有你的 MedX 值是

    =SUMIF(D3:O3,">=1.5",E3:P3)
    

    如果 MedX 值可能 >= 1.5,那么这个更明确的公式应该适合您:

    =SUMPRODUCT(--($D$2:$O$2="Time"),--(D3:O3>=1.5),--($E$2:$P$2="Med1"),E3:P3)
    

    【讨论】:

    • 谢谢,它似乎工作。我了解如何“移动”范围(因为 Time 和 Med1 的相对位置始终相同),并且如果我想对 Med2 或 Med3 而不是 Med1 求和,我也可以使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    相关资源
    最近更新 更多