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)))

改めて皆様のご意見に感謝いたします

関連情報