总计只有来自两列的匹配值

在这里输入图像描述

大家好,

有人知道如何列B列(小时),如果列A的数字与列E相匹配,总和按月计算。

例如,以二月份的数据为例,因为A列和E列中只有3000和4000,所以我需要在B月份之前将B列的小时数(20 + 10 = 30)相加。

我还附上了下面的示例excel表格。 https://www.dropbox.com/s/0s51g1i8g6s6e2d/Test.xls?m

提前致谢。 🙂

你可能会变得复杂的客户function,但如果有一个额外的列(可能隐藏)并不重要,那么这将工作:

在单元格D2中input:

=iferror(vlookup($A2,$E$2:$E$20,1,FALSE),"x") 

将公式向下拖动。

每个月下你可以把:

 =sumifs($B$2:$B$16,$C$2:$C$16,B$22,$D$2:$D$16,"<>x") 

拖动公式

这假设你可以改变列C或22行的月份格式是相同的,即。 一月,二月,三月或一月,二月,三月等

写在飞行中,没有testing,所以借口任何小错误…

到目前为止发布的两个答案都很好,但只是作为一种select,这是我会做的。 把这个公式放在D2单元格中,然后拖拽它:

 =IF(NOT(ISNA(VLOOKUP(A2, $E$2:$E$20, 1, FALSE))), B2, "") 

然后,如果你创build一个包含月份名称的列,从G2到G7,你有七月的二月,三月,…,你可以把这个公式放到H2中,然后拖拽它:

 =SUMIFS($D$2:$D$16, $C$2:$C$16, G2) 

这应该得到你想要的。

把这个公式放在单元格D2中,然后向下拖动:

=IF(NOT(ISERROR(MATCH(A2,$E$2:$E$20,FALSE))),B2,"")

在第22行中,将月份名称更改为全名, 或将 C列中的月份名称更改为缩写的3个字母的名称,这样我们可以使用SumIf函数。

然后,在单元格B23中,把这个公式,并拖动它:

=SUMIF($C$2:$C$16,B22,$D$2:$D$16)

(我把第24行中的公式与第23行中已有的数据进行比较)

SumIf函数结果的屏幕截图

没有帮手的话,不应该太难了。 只要确保在第22行中有完整的月份名称以匹配列C数据,然后使用B23中的此公式复制到整个数据库

=SUMPRODUCT(SUMIFS($B2:$B16,$C2:$C16,B22,$A2:$A16,$E2:$E20))