总计只有来自两列的匹配值
大家好,
有人知道如何列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行中已有的数据进行比较)
没有帮手的话,不应该太难了。 只要确保在第22行中有完整的月份名称以匹配列C数据,然后使用B23中的此公式复制到整个数据库
=SUMPRODUCT(SUMIFS($B2:$B16,$C2:$C16,B22,$A2:$A16,$E2:$E20))