Google表格-sumif在行和列上使用条件

问题描述

我有一个如下所示的电子表格

表1

ID/Month | May | June | July | August | September | October

ID101    | 30  | 50   | 50   | 80     | 20        | 60

ID201    | 20  | 30   | 10   | 40     | 30        | 50

ID101    | 10  | 50   | 60   | 80     | 70        | 20

ID301    | 20  | 80   | 70   | 40     | 40        | 70

ID101    | 30  | 70   | 80   | 50     | 90        | 50

ID301    | 80  | 20   | 30   | 20     | 60        | 20

表2

ID    | Date      | Value

ID101 | July      | ?

ID201 | September | ?

ID301 | June      | ?

?如果ID匹配且日期行小于或等于表2中指定的日期,则为表1中值的总和。

所以

  • 对于ID101 | July | ? ,我需要在表1和5月/ 6月/ 7月列中找到ID101行中的值之和
  • 对于ID201 | September | ?,我需要在表1和5月/ 6月/ 7月/ 8月/ 9月列的ID201行中找到值的总和

如何做类似索引匹配表之类的求和运算,可以在其中查找列(ID)和行(小于或等于日期)的条件

解决方法

您需要做三件事:

  • 取消数据表的旋转(从“宽”到“长”),以使每个值都在其自己的行中,由ID和Month标识(这有点棘手)
  • 为您的月份提供一个数值(MONTH()函数派上用场)
  • 使用SUMIFS检查ID列和Month列。

这是一个有效的示例:Google Sheets link

,

您可以使用SUMPRODUCT函数:

=SUMPRODUCT((J2=$A$2:$A$7)*(MONTH(K2&1)>=MONTH($B$1:$G$1&1))*$B$2:$G$7)

enter image description here

要使用MONTH(K2&1)公式将月份名称转换为正确的数字,您必须在电子表格设置中指定United States区域设置