こんな感じです。
A | B |
---|---|
0 | 0 |
0 | 0 |
0 | 0 |
0 | 0 |
1 | 1 |
0 | 0 |
1 | 3 |
1 | 3 |
1 | 3 |
0 | 0 |
0 | 0 |
0 | 0 |
1 | 2 |
1 | 2 |
▽1
●
gong1971 ●200ポイント ベストアンサー |
仮計算の列を使用すれば可能です。(条件に特に記載が無かったので…)
下記例では、A1からデータが始まっているとして、C列を仮計算に使用します。
C1: =A1
C2: =IF(A2=0,0,C1+1)
B1: =IF(C1=0,0,IF(C2=0,C1,B2))
※C2とB1の数式は、必要行数分、下方向にコピーしてください。
※仮計算に使用したC列は非表示にする事が可能です。
※数式を設定した最下行の直下の行は空白セルとしてください。
マクロは使用しないということで大分めんどくさい感じになっていますが。
B列,C列,D列,E列,F列,G列,H列に以下のような関数を書きます。(2行目に書くとして記載します)
B列 =IF(A2,SUM(C2+":"+D2),0)
C列 =ADDRESS(G2,1)
D列 =ADDRESS(H2,1)
E列 =IF(A2,E1+A2,0)
F列 =IF(A2,F3+A2,0)
G列 =ROW()-E2
H列 =ROW()-1+F2
こうすれば、B列にお望みの形で表示されるとおもいます。
E列、F列で上から連続と下から連続を計算し、それを元にSUM関数の開始/終了アドレスをとって集計しています。(工夫すれば、関数の入れ子でできるような気もしますが....)