如果行中的值位于特定列中,并且相邻单元格具有特定值,则对行求和

Sum values across a row if they are in certain columns, and if adjacent cells have a specific value

Link转至数据截图:https://imgur.com/a/CrRLb6d

我正在处理一个 excel 文件,该文件有一个由 4 列组成的循环组(见图:第 header 列是时间、Med1、Med2、Med3)。在左边的 B 列中,我想对一行中的值求和,但唯一应该求和的值是满足条件的值:

  1. 该值位于 Med1 列(所有具有 Med1 header 的列),并且;
  2. 同一行(Med1 列左侧的 1 列)的相邻时间值等于或大于 1.5。

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

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

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

以前,我只想对一行中的所有 Med1 值求和(不管相邻的 Time 值),如下所示:

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

但是,使用相邻时间值的第二个标准,我似乎无法让它工作。感谢您的帮助!

如果块都紧挨着每个块,如图像所示,并且您要求和的值始终是时间值右侧 1 个单元格,并且只有时间值可以 >= 1.5 (您所有的 MedX 值都 < 1),那么这个公式将适用于您:

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

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

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