![逐个单元格地执行计算](https://linux22.com/image/1367845/%E9%80%90%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E5%9C%B0%E6%89%A7%E8%A1%8C%E8%AE%A1%E7%AE%97.png)
是否可以按细胞逐个进行计算?
我试图将E10:E610
11,538 到 34,760 之间的一系列列中的值相加,然后计算出 5.6%。但是,为了与另一份文件保持平衡,我需要在该范围内分别找出每个数字的 5.6%,然后分别对它们进行舍入。
为什么?我要用来平衡的文件对数字进行单独计算和四舍五入,所以我的计算结果有点偏差。例如,23,726 的 5.6% 是 1,328.6,四舍五入后是 13,327。如果我当前文件中有 5 次 23,726,结果将是 6,643.28,因为 Excel 会将 1,328.6 相加五次,然后得出 5.6%。
但是,单独四舍五入将得到 6,645。有什么帮助吗?
=ROUND(IF(J5="Yes",SUMPRODUCT((E10:I610>11538)*(E10:I610<=34760)*(A10:A610="No"),E10:I610)*0.056+(COUNTIF(E10:I610,">34760")*34760)*0.056,""),0)
我刚刚意识到四舍五入是针对整个总数进行的。我能以某种方式计算每个单元格并计算每个单元格的四舍五入吗?
也许我必须使用 VBA......
答案1
对某个范围内的数字进行单独舍入的一种方法是使用数组公式。
这是一个简单的例子。A:I 列显示使用因子 .056 对每个金额进行单独舍入,然后将舍入后的乘积结果相加。
单元格 M7 使用一个公式显示相同的结果:=SUM(ROUND(K4:L6*.056,0))
如您所见,该函数的第一个参数是整个数字范围与 .056 的乘积,第二个参数是 0。(此小示例的舍入误差约为 0.8。)作为数组公式,必须使用- -组合键输入ROUND
表达式。CTRLShiftEnter
虽然您的公式要复杂得多,但仍然可以应用相同的方法,尽管可能无法像SUMPRODUCT
您那样使用。您只需使用即可SUM
。(仅查看`SUMPPRODUCT(....)* .056 部分,我可能会做类似的事情
=SUM((E10:I610>11538)*(E10:I610<=34760)*(A10:A610="No")*ROUND(E10:I610*0.056,0))