站内搜索:

代查纠错

浏览人数:
情况是这样的,公式在部分单元格有效,而下拉,部分单元格的公式又无法计算出结果。



我们来看一下P8单元格使用了sumif的公式,if公式只是起到了美化的效果,可以忽略,但上面的P2到P5是可以正常运算结果的,说明公式本身并没有问题。如下图:



我们来分析一下,左侧的原始数据部分,第7行是有C这个值的,提取显示的是150,而sumif却没有求和出来,判断从原始数据异常入手。下面来查看单元格的内容,如下:



原公式如下:
=IFERROR(IF(EXACT(B2,项目代码!$E$2),F2*0.3,IF(EXACT(B2,项目代码!$E$3),F2*0.4,IF(EXACT(B2,项目代码!$E$4),F2*0.4,IF(AND(OR(C2="A",C2="B"),OR(E2="F1",E2="F4",E2="S1")),"50",IF(AND(C2="A",OR(E2="F2",E2="F5",E2="F7")),"100",IF(AND(C2="A",OR(E2="F3",E2="F6",E2="C2")),"150",IF(AND(C2="B",OR(E2="F2",E2="F5",E2="F7")),"80",IF(AND(C2="B",OR(E2="F3",E2="F6",E2="C2")),"100","")))))))),"")

可以发现,要进行计算的数值使用了引号,在excel表格中使用引号所表示的内容是不进行计算的内容,而再使用sumif进行求和时,就出现了不计算的情况。

所以,我们需要把公式中的文本变成数值,去掉对应的引号,如下:

=IFERROR(IF(EXACT(B2,项目代码!$E$2),F2*0.3,IF(EXACT(B2,项目代码!$E$3),F2*0.4,IF(EXACT(B2,项目代码!$E$4),F2*0.4,IF(AND(OR(C2="A",C2="B"),OR(E2="F1",E2="F4",E2="S1")),50,IF(AND(C2="A",OR(E2="F2",E2="F5",E2="F7")),100,IF(AND(C2="A",OR(E2="F3",E2="F6",E2="C2")),150,IF(AND(C2="B",OR(E2="F2",E2="F5",E2="F7")),80,IF(AND(C2="B",OR(E2="F3",E2="F6",E2="C2")),100,"")))))))),"")

使用修正后的公式,P列的公式不需要修改,保存后结果自动计算出来了。

制作表格zhizuobiaoge.com
Copyright@all rights reserved