• ベストアンサー

Excel 連続した回数の把握 (できたら至急)

A列に以下のように、『0』と『1』が不規則に約4000個並んでいます。 今、『0』または『1』が”連続”して現われる回数を、それぞれ把握したいのですが、眼で確認してB列に『0』の連続回数を、C列に『1』の連続回数を打ち込んでいます。このままでは、一生かかりそうです(オーバー)、何か良いやり方ありませんでしょうか? A列 B列 C列 0 0    2 1 1       2 0 0 0 0    4 1 ・ ・ ・

質問者が選んだベストアンサー

  • ベストアンサー
  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.7

データが1行目からあるとして、 B1=IF(AND(A1=0,A2=1),1,"") B2=IF(AND(A2=0,A3=1),ROW()-SUM($B$1:C1),"") 下へコピー。 C1=IF(AND(A1=1,A2=0),1,"") C2=IF(AND(A2=1,A2=0),ROW()-SUM($B$1:C1),"") 下へコピー。

sannsyokupann
質問者

お礼

ありがとうございます。 さっそく試しました。出来ました。 ありがとうございます。助かりました。

sannsyokupann
質問者

補足

皆様、本当にありがとうございました。 貴重なお知恵を賜り、この欄をお借りして、深く御礼申し上げます。

その他の回答 (6)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.6

仮にA10からA2500までデーターが記入されていたとします この時 A9にデータと記入してください B行に0の連続数 C行に1の連続数が表示される この条件下で話をします 相違点は読み替えてくださいね 回答は2パターンできました それでは行きましょう パターン1です B10 =IF((A9<>A10)*(A10=0),MATCH(1,A10:$A$2500,0)-1,"") C10 =IF((A9<>A10)*(A10=1),MATCH(0,A10:$A$2500,0)-1,"") パターン2です まずB10:C10に対しセルの書式設定から表示形式・ユーザー定義と進み#を設定してください B10 =(A9<>A10)*(A10=0)*(MATCH(1,A10:$A$2500,0)-1) C10 =(A9<>A10)*(A10=1)*(MATCH(0,A10:$A$2500,0)-1) どちらのパターンもB10:C10を選択しオートフィルなどでB2500:C2500までコピーしてください (データ位置が変わるときは数式の数値も変更してくださいね) 残念ながらデータの途中で必ず#N/Aが現れますが それ以降同じ値が続く事を意味します きっちり#N/Aがでないようにも出来ますが お急ぎのご様子なのでこれで用が足りるかなと思いました 如何でしょうか?

sannsyokupann
質問者

お礼

ありがとうございます。エクセルの知識が、陳腐なものしかなく、すいません、イマイチ、理解できませんでした。ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 マクロなら、このようになります。 なお、途中で、数字でないものが入ると、そこで、一旦、カウントが途切れます。 'シートモジュールでも可 Sub CountSerial()  Dim i As Long  Dim buf As Variant  Dim cnt As Variant  Application.ScreenUpdating = False  For i = 1 To Range("A65535").End(xlUp).Row   If VarType(Cells(i, 1).Value) = vbDouble Then    buf = Cells(i, 1).Value    If cnt = Empty Then     cnt = 1    ElseIf buf = Cells(i, 1).Value Then     cnt = cnt + 1    End If    If buf <> Cells(i + 1, 1).Value Then     Cells(i, 2).Offset(, CLng(buf)).Value = cnt     cnt = Empty    End If   End If  Next i  Application.ScreenUpdating = True End Sub

sannsyokupann
質問者

お礼

ありがとうございます。お恥ずかしい、マクロの知識もなく・・・ お手数をお掛けいたしました。ありがとうございました。

  • 221west
  • ベストアンサー率36% (168/459)
回答No.4

No.2およびNo.3です。 すいません、質問をきちんと読んでませんでした。「連続」だったんですね。 B1=IF(A1=0,1,"") B2=IF(A2=0,IF(B1="",1,B1+1),"") 以下同様 C1=IF(A1=1,1,"") C2=IF(A2=1,IF(C1="",1,C1+1),"") 以下同様 何回もしつこくてすいません、これで大丈夫です。

sannsyokupann
質問者

お礼

何度もありがとうございます。 ありがとうございました。

  • 221west
  • ベストアンサー率36% (168/459)
回答No.3

No.2です。 すいません、後半が違ってました。 C1=IF(A1=1,1,0) C2=IF(A2=1,C1+1,C1) C3=IF(A3=1,C2+1,C2) 以下同様(コピーすればOK) と、なります。

sannsyokupann
質問者

お礼

ありがとうございました。

  • 221west
  • ベストアンサー率36% (168/459)
回答No.2

以下の様にすれば、その行までに出現した回数が分かります。 B1=IF(A1=0,1,0) B2=IF(A2=0,B1+1,B1) B3=IF(A3=0,B2+1,B2) 以下同様(コピーすればOK) C1=IF(A1=1,1,0) C2=IF(A2=1,B1+1,B1) C3=IF(A3=1,B2+1,B2) 以下同様(コピーすればOK)

  • reki4649
  • ベストアンサー率21% (116/539)
回答No.1

ちょいとお酒が入ってるので細かいところが違うかも知れませんが。。。 とりあえず0の連続する所を表示させる方法。 一列で収める方法が思いつかなかったので2列で。 A列  B列   C列 0  =if(c2=0,c1,0)  =if(a1=0,1,0) 1 =if(c3=0,c2,0) =if(a2=0,1+c1,0) 1   繰り返し    繰り返し 0 0 0 0     C列で0が連続すれば足していって1が出れば0にする。 その後、B列でC列の連続した一番大きい数(次が0の所)だけを 持ってきます。 後は0を消せばOK。 その後 同じように1についてやれば完成です。 至急ならこれで大まかにやれば大丈夫では?

sannsyokupann
質問者

お礼

早々、お答えを賜り、ありがとうございました。

関連するQ&A

  • EXCEL連続した回数のカウント

    エクセル初心者です。 連続した数字の回数のカウントの仕方が分からず困っております。 A列に0と1が50個並んでいます。 50個の0と1はその並び順が変化します。 1が先頭から5個以上、連続して並んだ時に、その1が連続した回数を特定のセル(例えばB1)に表示するようにしたいのです。 下の例1ではA3から1が8個連続していますので、B1のセルに8が入るようにしたいのです。 並びが変わりますので、先頭のA3が0の例2や、1が5個以上連続しない例3の場合は、B1のセルは空白のままになるようにしたいのです。 1が先頭のA3から5個以上連続した時だけ、その先頭から連続した回数(個数)を数えるようにしたいのです。 どうぞよろしくお願いします。 (例1)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 10行 1 11行 0 12行 0 ・ (例2)   A列   B列   C列・・ 1行 2行  3行 0 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 ・ (例3)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 0 8行 0 ・

  • エクセルで連続セルの出現回数を出したいです。

    例えば、A列に、0と1だけのデータが(数万行)あります。 A列 0 0 0 →a 1 →c 1 0 0 0 →a 0 →b 0 1 0 1 1 1 1 0 このデータから、 a:0が3連続した回数 b:0が3連続した次のデータが0だった回数 c:0が3連続した次のデータが1だった回数 (4連続は含まず) こういったデータを出したいのですが、エクセルでどのような方法がありますでしょうか? (上記の例では、a2回、b1回、c1回) よろしくお願い致します。

  • エクセルで連続回数などを調べたいです。

    エクセルで連続回数などを調べたいです。 なるべく簡単に出来る方法があればぜひ宜しくお願いします。 例えば      A列   B列 1行目   い    64 2行目   い   100 3行目   あ    30 4行目   あ    40 5行目   あ    20 6行目   い   -77 7行目   い -60 8行目   あ   -80 9行目   あ   -50 10行目   あ -100 ・    ・ ・    ・ ・ 800行目 というように数字が入っているとして、 1.A列が「あ」で、B列に「正」が連続で出てきた回数の最も多い回数を調べたい。  (A列が「い」の場合や、「正」では無く「負」の場合も) 2.さらに、1の結果それぞれの数字を合計したい。 というときはどんな式になりますでしょうか? 上の、1行目~10行目で言えば、 「あ」の場合の「正」の最大連続回数は「3」 「い」の場合の「正」の最大連続回数は「2」 「あ」の場合の「負」の最大連続回数は「3」 「い」の場合の「負」の最大連続回数は「2」 それぞれの合計数は 「あ」の「正」の最大連続回数「3」の合計数が「90」 ・・・・ のように出したいのです。 それぞれの答えを入力するセルは違います。 こちら、関数もよく分からない状態です・・・。 マクロなどは、「マクロ」という言葉しか分からない状態です。(すいません・・・) 大変お手数をおかけ致しますが、お詳しい方がいらっしゃれば、どうぞ宜しくお願いします。

  • エクセルで直近の連続回数を求める

    ある条件の結果、合格を1、不合格を0として記録し、直近で連続合格した回数を求めたいのですが、どのような関数を使うと良いでしょうか。 図では7回目まで終了していて、 【条件A】の場合、直近の結果が0なので連続回数は「0」。(返す値は0か空白) 【条件B】の場合、直近の結果が空白なので連続回数は「0」。(返す値は0か空白) 【条件C】の場合、連続回数は「2」。 各条件の結果には空白のセルも混在し、回数が上がると列を増やす予定で、その右端に連続回数を求める仕様です。出来れば、マクロを使わず関数で求めたいと思っています。 よろしくお願いします。

  • エクセル 連続達成した回数を数える

    こんにちは。 私は営業部の数字を管理しているのですが今困ってます。 目標に対する達成率が100%を超えている(要は達成してる)回数を 数えたいのですが、連続して達成してる回数を数えたいのです… 例)      1月  2月  3月  4月  5月  6月 7月 Aさん  99%  103% 105% 89% 95% 125% 93% Bさん  106% 117% 109% 128% 78% 89% 136% この場合Aさんが連続で達成した回数は2回でBさんは4回です。 最も連続している回数のみを拾いたいのでが可能でしょうか。 地道に数えてやるのは結構時間がかかるので誰か助けてください。 宜しくお願い致します。

  • Excelで連続で入力されたセルの数を数える方法は?

    A列に日付、B列に金額を毎日入力して行きます。ただし、金額はある条件のときだけ入力します。このとき、下のように金額欄にデータがあるときだけ、C列にその連続回数を表示したいと思います。    A    B    C 1 1/25   100   1 2 1/26   110   2 3 1/27 4 1/28   150   1 5 1/29    6 1/30    90   1 7 1/31   160   2 8 2/1    120   3 こんな感じにしたいのですが、どうすればよろしいのでしょうか? どうぞよろしくおねがいします。

  • エクセルで連続している数字の分類をする。

    エクセルにて、   A B C 一  二 2 3 5 三 2 5 4 四 1 5 4 五 5 5 2 六  このように、試験の解答の集計をしており、A,B,C列のそれぞれで、連続した数字のセット個数を数えたい。その中で、A列の2が連続している2連続と、B列の5が3連続している物とを、分けてカウントしたい、また、その二つをかぶらせずに別のものとしてカウントしたいのですが、どのようにしたらいいか、アドバイスを頂ければ嬉しいです。(2連続と3連続のカウント数を別のところで集計してます。) (3つ以上は連続したものがありません。2連続か、3連続のどちらかです。 しかし、数字のパターンが1~5の選択問題の為、5パターンあります。) ちなみに、今使っている物は ROUNDDOWN(SUMPRODUCT((A2:A5<>"")*SIGN((A2:A5=A3:A6)+(A2:A5=A1:A4)))/2,0) という式を使って数えているのですが、B列の5のように3連続が2つきてしまうと、数が2つ増えてしまい、切り捨てできずに1増えてしまう状態です。 お手数ですが、ご回答のほどよろしくお願いします。

  • 連続するローソク足をカウントしたい エクセル

    だいぶ探しましたがわかりませんでした。みなさま宜しくお願いします。 データーは下記のとおりです。 セルA2=始値 セルB2=終値 セルC2=(A2-B2) 目的:-(あるいは+)数字の連続数のカウント C列には計算後の数値をいれました。 ただ、休日により一切値動きのない連続データもはいってまして、まずそれを削除したいのです。 くわえて、所々にも値動きのないデーターがありますのでそれも削除したいです。 少なくとも10分×6×24×一年分ありますので、手作業ではとても…。 そのうえで C列の+数字(正)-数字(負)それぞれの数 正または負の連続回数と連続回数別の数(例えば2連続が何回、3連続が何回みたいな) お手数おかけしますが、どなたさまかよろしくお願いいたします。

  • javascriptで同文字の出現回数を調べるには

    javascriptで入力チェック時に以下の条件を満たすようにしたいのですが、 簡単にできる方法はないでしょうか。 条件 ・文字列内に同じ文字が指定回数以上出現していたらアラートを出したい。 例)「1a1b1a1c」という文字列があったとすると、「1」の出現回数は4。 「a」の出現回数は2。「b」「c」の出現回数は1。 といったように、連続しているとは限らないある特定の文字が 何回出現しているかを知るにはどうしたら良いでしょうか。 正規表現で試みたのですが、どうにもできず困っております。

  • エクセルで連続するデータの個数だけカウントする

    エクセルは2013を使用しています。 シートには各セルに「○」 「×」 「□」 「空白」が入力されています。    A   B  C 1  ○   ○ 2  × ○   3  × ○ □ 4     ○ □ 5  ○ × □ 6  × □ ○ 7  ○ □   8       ○ 計  2 5 3 ※A列の計・・・×が連続している ※B列の計・・・○と□が連続している ※C列の計・・・□が連続している このように連続するデータの個数だけをカウントする方法を教えて下さい。 よろしくお願い致します。

専門家に質問してみよう