此问题涉及this Stack Overflow question。
这是原来的问题:
A B C
a 3 d
b 1 a
c 8 e
d 5
我想使用
SUMIFS
函数,求和范围为B1:B4
,如果列A
中存在列C
中的相应值,则对B
列中的值求和1}},在这种情况下,总和将是3 + 5 = 8
。
答案结果是:
=SUMPRODUCT(SUMIF(A1:A4,C1:C3,B1:B4))
我想创建相同的结果,但在其中一个范围内使用乘数。
这是我的问题:
A B C D
a 3 d 3
b 1 a 1
c 8 e 1
d 5 d 3
我唯一想做的就是添加一个作为乘数的范围D1:D3
。在这种情况下,我想要的总和是(3x3)+(5x3)= 24
。
一个挑战是在下面链接的“测试数据”谷歌表中,范围是不同的大小。 “测试数据”表是一个例子,说明我希望根据“乘数列”所规定的食物供应次数计算每日卡路里的总量。
我希望C2:C27
中的数字是乘数,并计入D36
中的总数。
例如,如果我吃了2份牛肉,那么2份价值的牛肉卡路里将显示在数据下方的每日总数中。目前,使用公式= SUMPRODUCT(SUMIF(Meal_Items!$ A $ 2:$ A $ 100,$ D $ 2:$ D $ 28,Meal_Items!$ B $ 2:$ B $ 100)),只加1份牛肉。
请参阅上面链接的测试数据
答案 0 :(得分:1)
原始问题也可以用这个公式来解决
=SUMPRODUCT((COUNTIF(C1:C3,A1:A4)>0)+0,B1:B4)
使用该版本添加一个或多个乘数列
是一件简单的事情 =SUMPRODUCT((COUNTIF(C1:C3,A1:A4)>0)+0,B1:B4,D1:D4)
鉴于评论中的讨论,此公式应该在Excel或Google工作表中执行您想要的操作
=SUMPRODUCT(IFERROR(LOOKUP($D$2:$D$28,Meal_Items!$A$2:$A$100,Meal_Items!$B$2:$B$100),0),$C$2:$C$28)
答案 1 :(得分:0)
如果您实际上已将A,B,C等放入标题行(第1行),那么在您正确重命名标题列标签或使用数据范围引用代替完整列引用之前,这将无效提供了。
=B2*INDEX(B:B, MATCH(A2, A:A, 0))+B2*INDEX(B:B, MATCH(C2, A:A, 0))
答案 2 :(得分:0)