为 excel 公式中的组合优化 =somproduct(---())
Optimize =somproduct(---()) for combinations in excel formula
我希望使用 组合列表在 查找 table 中组合 值 :
Combinations: Expected result:
#1 #2 #3 #4 #5 #6 A B
1 =2 =6
1 2 =2+3 =6+7
1 3 5 …
1 4 5 6 …
2 1 3 5 6 =3+2+5+2+1 …
…
Lookup table
A B
1 2 6
2 3 7
3 5 5
4 4 8
5 2 20
6 1 12
我正在做的是:
使用这个公式:
=SOMMEPROD(--($B:$B=$C4),$C:$C)
+SOMMEPROD(--($B:$B=$D4),$C:$C)
+SOMMEPROD(--($B:$B=$E4),$C:$C)
+SOMMEPROD(--($B:$B=$F4),$C:$C)
+SOMMEPROD(--($B:$B=$G4),$C:$C)
+SOMMEPROD(--($B:$B=$B4),$C:$C)
我想用 somproduct(offset()) 或数组公式来做一些事情,这些公式可以在一行中完成。
可以 post 我的许多失败尝试,但它会降低可读性。
最简单的方法可能是在计算 A 和 B 的 运行 总和的位置添加辅助列。然后您可以执行 VLOOKUP 以检索感兴趣的总和。
另一种方法是这样的:
=SUM(OFFSET($C,0,0,N,1))
其中 N 是您要对多少个 A 项目求和。
同样
=SUM(OFFSET($D,0,0,N,1))
对 B 的前 N 项求和。
希望对您有所帮助。
把这个放在I4里往下拉:
=IFERROR(索引($B$13:$B$18,匹配(B4,$A$13:$A$18,0)),0)+IFERROR(索引($B$13:$B$18,匹配(C4,$A$13:$A$18,0)),0)+IFERROR(索引($B$13:$B$18,匹配(D4,$A$13:$A$18,0)),0)+IFERROR (INDEX($B$13:$B$18,MATCH(E4,$A$13:$A$18,0)),0)+IFERROR(INDEX($B$13:$B$18,MATCH(F4,$A$13: $A$18,0)),0)+IFERROR(INDEX($B$13:$B$18,MATCH(G4,$A$13:$A$18,0)),0)
将其放入 J4 并向下拖动:
=IFERROR(索引($C$13:$C$18,匹配(B4,$A$13:$A$18,0)),0)+IFERROR(索引($C$13:$C$18,匹配(C4,$A$13:$A$18,0)),0)+IFERROR(索引($C$13:$C$18,匹配(D4,$A$13:$A$18,0)),0)+IFERROR (INDEX($C$13:$C$18,MATCH(E4,$A$13:$A$18,0)),0)+IFERROR(INDEX($C$13:$C$18,MATCH(F4,$A$13: $A$18,0)),0)+IFERROR(INDEX($C$13:$C$18,MATCH(G4,$A$13:$A$18,0)),0)
我希望使用 组合列表在 查找 table 中组合 值 :
Combinations: Expected result:
#1 #2 #3 #4 #5 #6 A B
1 =2 =6
1 2 =2+3 =6+7
1 3 5 …
1 4 5 6 …
2 1 3 5 6 =3+2+5+2+1 …
…
Lookup table
A B
1 2 6
2 3 7
3 5 5
4 4 8
5 2 20
6 1 12
我正在做的是:
使用这个公式:
=SOMMEPROD(--($B:$B=$C4),$C:$C)
+SOMMEPROD(--($B:$B=$D4),$C:$C)
+SOMMEPROD(--($B:$B=$E4),$C:$C)
+SOMMEPROD(--($B:$B=$F4),$C:$C)
+SOMMEPROD(--($B:$B=$G4),$C:$C)
+SOMMEPROD(--($B:$B=$B4),$C:$C)
我想用 somproduct(offset()) 或数组公式来做一些事情,这些公式可以在一行中完成。
可以 post 我的许多失败尝试,但它会降低可读性。
最简单的方法可能是在计算 A 和 B 的 运行 总和的位置添加辅助列。然后您可以执行 VLOOKUP 以检索感兴趣的总和。
另一种方法是这样的:
=SUM(OFFSET($C,0,0,N,1))
其中 N 是您要对多少个 A 项目求和。 同样
=SUM(OFFSET($D,0,0,N,1))
对 B 的前 N 项求和。
希望对您有所帮助。
把这个放在I4里往下拉:
=IFERROR(索引($B$13:$B$18,匹配(B4,$A$13:$A$18,0)),0)+IFERROR(索引($B$13:$B$18,匹配(C4,$A$13:$A$18,0)),0)+IFERROR(索引($B$13:$B$18,匹配(D4,$A$13:$A$18,0)),0)+IFERROR (INDEX($B$13:$B$18,MATCH(E4,$A$13:$A$18,0)),0)+IFERROR(INDEX($B$13:$B$18,MATCH(F4,$A$13: $A$18,0)),0)+IFERROR(INDEX($B$13:$B$18,MATCH(G4,$A$13:$A$18,0)),0)
将其放入 J4 并向下拖动:
=IFERROR(索引($C$13:$C$18,匹配(B4,$A$13:$A$18,0)),0)+IFERROR(索引($C$13:$C$18,匹配(C4,$A$13:$A$18,0)),0)+IFERROR(索引($C$13:$C$18,匹配(D4,$A$13:$A$18,0)),0)+IFERROR (INDEX($C$13:$C$18,MATCH(E4,$A$13:$A$18,0)),0)+IFERROR(INDEX($C$13:$C$18,MATCH(F4,$A$13: $A$18,0)),0)+IFERROR(INDEX($C$13:$C$18,MATCH(G4,$A$13:$A$18,0)),0)