【问题标题】:How to write one whole expression to get the column's weighted sum?如何编写一个完整的表达式来获得列的加权和?
【发布时间】:2020-01-03 15:27:04
【问题描述】:

数据列在excel表格中包含四个值:1,1,2,3,每个数据都有权重,1的权重是0.9,2的权重是0.8,3的权重是0.7,我想要加权总和。

1.在B2中写入表达式=IF($A2=1,0.9,IF($A2=2,0.8,IF($A2=3,0.7)))
2.将填充手柄从B2拖到B5
3.在B6中写入表达式=sum(B2:B5)

我在b6 中得到正确的和,我可以删除B 列并在B1 中写一个表达式以获得加权和吗?也就是说,将 step1、step2、step3 合并为一个表达式?

【问题讨论】:

    标签: excel if-statement excel-formula sum


    【解决方案1】:

    不同的SUMPRODUCT 可用于不同的权重:

    =SUMPRODUCT(CHOOSE(A2:A5,0.9,0.8,0.2))
    

    请注意,这是一个数组公式,需要使用 CTRLSHIFTENTER

    确认

    【讨论】:

    • 不错。作为记录,你不需要SUMPRODUCT,当你需要CSE一个公式时,只需SUM就可以了=)
    【解决方案2】:

    使用 SUMPRODUCT:

    =SUMPRODUCT(1-(A2:A5*0.1))
    


    如果您想对值进行硬编码,那么我建议使用 INDEX/MATCH:

    =SUMPRODUCT(INDEX({0.9,0.8,0.2},MATCH(A2:A5,{1,2,3},0)))
    

    然后您可以将数组更改为您喜欢的任何内容。

    【讨论】:

    • 不,3的重量是0.2呢?
    • 如果 3 的权重为 0.2,则加权和为 2.8,而不是 3.3。
    • 你的问题是 3 是 .7 而不是 .2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多