逐个单元格地执行计算

逐个单元格地执行计算

是否可以按细胞逐个进行计算?

我试图将E10:E61011,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)) 

相关内容