電子書籍の厳選無料作品が豊富!

Excelで0が3つ以上連続するまでを1グループとみなしてグループ数を数える方法を探しています。
以下のようなデータがある場合、A列中に何グループあるのかを関数で算出したいと考えています。
また、可能であればグループの合計値と、グループがはじまるまでの0の数もカウントしたいと考えております。

(例)
行  A
1  0
2  0
3  0
4  1
5  2
6  0
7  1
8  0
9  0
10  0
11  0
12  3
13  0
14  0
15  2

例中のA1~A15の範囲内では、A4~A7、A12~A15をグループとみなして、グループ数は「2」ということになります。
また、ひとつめのグループの合計値は4、グループ前のゼロの数は3、
ふたつめのグループの合計値は5、グループ前のゼロの数は4、といった数字を計算したいです。

・列内に空白のセルはありません。
・グループとグループの間に入る0の数は不規則です。
・数字がひとつの場合も、前後に0が3つ以上ある場合はグループとみなします。


お知恵をお貸しください。
質問がわかりにくくて申し訳ありませんが、
よろしくお願いいたします。

A 回答 (2件)

たたき台(よって、エラー処理なし)



1. 1行目にタイトル行を挿入

2. B2セルに =IF(A2=0,SUM(B1,1),0)
 フィルハンドルダブルクリック

3. C2セルに =SUM(C1,(AND(B2>=3,SUM(B2,1)<>B3)+0))
 フィルハンドルダブルクリック

4. E列連番

5. F2セル =SUMIF(C:C,E2,A:A)
 下へオートフィル

6. G2セル =INDEX(B:B,MATCH(E2,C:C,0))
 下へオートフィル

7. F6セル =MAX(C:C)
「指定した条件に当てはまる場合、複数の数字」の回答画像1
    • good
    • 1
この回答へのお礼

ご回答いただき、ありがとうございます。
教えていただいた式で思っていた数字を得ることができました。

重ねての質問で恐縮なのですが、
仮にデータが0で終わる場合、
グループ数は=MAX(C:C)-1の値になるかと思います。

最後の値を確認すれば済むことなのですが、
データ数が500~800×30ほどあるので
もし最後のデータが0か否かを確認、もしくは
確認せずともグループ数をカウントする方法がありましたら、ご教授いただけないでしょうか。
よろしくお願いいたします。

お礼日時:2016/01/26 16:31

>仮にデータが0で終わる場合、


そうですね
>>7. F6セル =MAX(C:C)

=LOOKUP(8^8,C:C)-(LOOKUP(8^8,B:B)>=3)
ちょっと解説
8^8は16,777,216 つまり大きな数値ってこと
この数値より小さい値しかないので、一番下の値を持ってくる

グループ数の値をもとに連番もエラー処理するとよいです
    • good
    • 1
この回答へのお礼

助かりました

なるほど。
ご教授いただいた式を入力したところ
うまく処理することができました!

途方に暮れていたので本当に助かりました。
丁寧にご回答いただき、ありがとうございました。

お礼日時:2016/01/26 17:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!