如何调整Excel的BYROW函数实现动态行的自定义计算?
用BYROW实现自定义行级计算的解决方案
可以直接调整BYROW函数实现需求,以下是具体方案:
公式实现
在F2单元格输入以下公式:
=BYROW(B2#:D2#,LAMBDA(x, IF(INDEX(x,1)=0, 0, (INDEX(x,1)-INDEX(x,2)-INDEX(x,3))/INDEX(x,1))))
公式说明
B2#:D2#:和你原E列公式一致,动态引用B到D列的非空数据行,自动适配行的动态扩展LAMBDA(x, ...):x代表当前行的B、C、D三个单元格值组成的数组INDEX(x,1):提取当前行的B列值(数组x的第一个元素)- 逻辑判断:如果B列值为0,直接返回0;否则计算
(B-C-D)/B的结果
注:你伪代码中的SUM是多余的,因为(B-C-D)/B本身就是单个数值,SUM不改变结果;如果后续需要扩展列计算后求和,可将核心计算部分包裹在SUM()中,比如SUM((INDEX(x,1)-INDEX(x,2)-INDEX(x,3))/INDEX(x,1))。
内容的提问来源于stack exchange,提问作者Automation Monkey
相关产品推荐
相关产品推荐

