行求和,當第一個結果為正時停止。其餘行值將會轉換/替換為 0,最後一個具有正值的結果將會得到最終的總和。
例如。
A1 行:F1 = -2, -3, -6, 6, 20, 2
將有:
行 = 0, 0, 0, 0, 0, 15, 17
編輯:在我的髒解決方案(公式)中,我有這些:
對於 A2:F2 中的每一行
A2 =IF(SUM(A1:A1)<0,0,A1)
B2 =IF(SUM(A1:B1)<0,0,SUM(A1:B1))
C2 =IF(SUM(A1:C1)<0,0,SUM(A1:C1))
D2 =IF(SUM(A1:D1)<0,0,SUM(A1:D1))
E2 =IF(SUM(A1:E1)<0,0,SUM(A1:E1))
F2 =IF(SUM(A1:F1)<0,0,SUM(A1:F1))
但當它達到數組中的第一個正和時,它應該停止計算。
非常感謝
答案1
我認為這可以在沒有 VBA 的情況下完成(總是更好的解決方案!)。如果您的資料位於 A 行,請嘗試將其放入 B1:=IF(SUM($A$1:A1)<0;0;SUM($A$1:A1))
並複製並貼上到右側。
Ps:不確定總和所在儲存格右側的儲存格中應該包含什麼。現在,它不斷增加這些值。如果這應該有所不同,請編輯您的問題。
答案2
透過新增額外的「IF」語句,我無需巨集即可實現它。輸出應該是:
給定行 A1:F1 = -2, -3, -6, 6, 20, 2
輸出行 A2:F2 = 0, 0, 0, 0, 0, 15, 2
將在第一個正 SUM 結果處停止。
。
所以公式變得很長,並不是一個好的解決方案。我現在可以使用這個,但如果有人可以分享一個宏,我將非常感激。
對於 A2 行:F2
A2=IF(SUM(A1:A1)<0,0,A1)
B2=IF(SUM(A1:B1)<0,0,IF(A1>0,B1,SUM(A1:B1)))
C2=IF(SUM(A1:C1)<0,0,IF(B3>0,C1,SUM(A1:C1)))
D2=IF(SUM(A1:D1)<0,0,IF(C3>0,D1,SUM(A1:D1)))
E2=IF(SUM(A1:E1)<0,0,IF(D3>0,E1,SUM(A1:E1)))
F2=IF(SUM(A1:F1)<0,0,IF(E3>0,F1,SUM(A1:F1)))
。
再次感謝大家的想法