为 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)