Excel巨集行求和

Excel巨集行求和

行求和,當第一個結果為正時停止。其餘行值將會轉換/替換為 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)))

再次感謝大家的想法

相關內容