我在Excel中遇到了一个我似乎无法解决的问题:
我正在使用SUMPRODUCT()函数来计算滑动比例佣金。通过阅读本页,我了解了它的基础知识:http://www.mcgimpsey.com/excel/variablerate.html 这说明我可以按照以下方式制定佣金:
=SUMPRODUCT(--(A1>$J$2:$J$5), (A1-$J$2:$J$5), $L$2:$L$5)
如果A1是总金额,J2:J5将是一系列阈值,L2:L5是这些阈值的不同佣金率。
我已经将公式用于单个测试用例,但是当我尝试将变量分解为单元格引用和范围时,它会失败并返回#VALUE!
e.g。我使用以下公式时失败:
=SUMPRODUCT(--(C17>$C7:$E7),(C17-$C7:$E7),commissionPercentages)
或
=SUMPRODUCT(--(D17>$C7:$E7),(D17-$C7:$E7), R11:R13 )
两者都指含有百分比的三个相邻细胞。
但是,如果我将百分比硬编码为数组常量:
=SUMPRODUCT(--(C17>$C7:$E7),(C17-$C7:$E7),{0.05,0.05,0.1})
然后它有用......
它也适用于我的测试用例,其中所有参数都被命名为引用:
=SUMPRODUCT(--(testRevenueAmount>thresholds),(testRevenueAmount-thresholds),commissionPercentages)
我不明白为什么会这样,以及我做错了什么。
有人能开导我吗?
如果您想查看我正在尝试的内容,我的电子表格有一个简化版本。
http://diggory.net/Grazing/CommissionSample.xlsx
感谢。
答案 0 :(得分:3)
您还可以使用MMULT
函数来避免“数组输入”,即
=MMULT((C17>$C7:$E7)*(C17-$C7:$E7),commissionPercentages)
答案 1 :(得分:1)
正如您所说,不同的方向是问题。
您可以通过在公式中添加Transpose
来解决此问题
=SUMPRODUCT(--(C17>$C7:$E7),(C17-$C7:$E7),TRANSPOSE(commissionPercentages))