在Excel中怎样用公式快速计算出阶段性对应的数值?
思路:推导过程有点复杂,要考虑到每段完成率区间对应的分数段不一样,所以不能用IF等函数求解,必须使用LOOKUP之类的阶梯查询公式,本例用到SUMPRODUCT函数。为了便于理解和以后修改参数,建议增加辅助列,并将分数行的汉字“分”去掉以代入公式。以下公式,可自行拆解观察结果,帮助理解。
一、增加辅助列H
原有的分数段和完成率是不完整的,增加一列完成率到头的,正好分数也是100分,命名“*标准-追加”。根据项目和时间特性补充。
二、增加辅助列I:M
放置相邻区间段差异,以项目1当年为例,第一段完成率90%-80%这10%的区间段对应了60分(60-0),即每1%对应6分,得到比值6(公式在I3);第二段完成率80%-70%这10%的区间段对应了20分(80-60),即每1%对应2分,得到比值2。因涉及分段累计,所以还需要将较上一段的分数差异列出来代入计算,J3要放置2-6=-4分。这一点略有点难理解,可以搁置,到后面慢慢就理解了。
I3=(D$2-C$2)/(C3-D3)/100
J3=(E$2-D$2)/(D3-E3)/100-(D$2-C$2)/(C3-D3)/100 右拉复制到M3
//项目1完成率要倒算,所以注意减法的顺序
I4=(D$2-C$2)/(D4-C4)/100
//项目2的完成率是正着算的,注意分母里减法顺序与项目1相反
J4=(E$2-D$2)/(E4-D4)/100-(D$2-C$2)/(D4-C4)/100 右拉复制到M4,再下拉复制到I7:M7
注意因为G7和H7都是100%,所以M7的公式出现分母为0的情况,手动修改为
M7=0-(G$2-F$2)/(G7-F7)/100
至此辅助列部分完成。
三、查询公式
S3=SUMPRODUCT(TEXT(($C3:$G3-R3)*100,"0;!0")*I3:M3)
还是注意项目1的特点,要用标准值区域-实际完成率,项目2则反过来
*"0;!0"的意思是,如果为负数则返回0,其他正常返回,图示可帮助理解。
S4=SUMPRODUCT(TEXT((R4-$C4:$G4)*100,"0;!0")*I4:M4) 下拉复制到S7