考虑以下数据(假设所有数据都在第1行中):
A B C D E F G
20 7 3 4 3 8 7我想要做的是从A1中扣除第1行中的值,从最右边的值(G1)开始,从左开始(以B1结尾)。一旦该值即将产生负结果,我希望它停止从那里扣除。在给定的示例中,该公式应该具有如下所示的逐步方法:
A1-G1 (20-7) = 13
A1-G1-F1 (13-8) = 5
A1-G1-F1-E1 (5-3) = 2
A1-G1-F1-E1-D1 (2-4) = -2在第三步中,一旦检测到第四个值(D1)的演绎结果为负值,它就会停止从那里进行推导,公式的结果应该是值为2。
我为此做了两件事:
=A1-IF(A1-G1<0,0,G1)-IF(A1-G1-F1<0,0,F1)....=IF(A1-SUM(B1:$G$1)<0,0,A1-SUM(B1:$G$1))在此之后,我只使用MIN()函数来获得所需的值。
现在,这方面的问题是,我不得不对数十万行这样做,并且所有行的大多数单元格都将继续添加值。我想做的是将一个帮助表链接到我的原始数据,并使用第二个选项来获得最小值。我可以使用SUM()函数中的COUNTIF、ADDRESS、SUBSTITUTE和INDIRECT方法链接列字母,我认为这些方法会很好。我只是想知道我是否可以避免所有这些工作,而是使用一个单一的公式来实现我的要求。谢谢!
发布于 2018-07-12 10:21:30
我可以看到一个偏移的解决方案,从第一个数字(20)中减去数字(32)的总和,得到一个负数(-12),然后开始添加数字7,7+3,7+3+4…。直到得到一个正数(+2)。它看起来如下(输入为数组公式):
=INDEX((A1-SUM(B1:G1)+SUBTOTAL(9,OFFSET(A1,0,1,1,COLUMN(B1:G1)-1))),
MATCH(TRUE,(A1-SUM(B1:G1)+SUBTOTAL(9,OFFSET(A1,0,1,1,COLUMN(B1:G1)-1)))>0,0))

https://stackoverflow.com/questions/51301185
复制相似问题