• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

1行目から8行目までデータが記入されているとき 一つ空けてA10に =SUMPRODUCT((A2:A8<>"")*SIGN((A2:A8=A1:A7)+(A2:A8=A3:A9))) と記入、右にコピー。

tomoyochan
質問者

お礼

とてもスマートな回答ありがとうございます

その他の回答 (4)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

>A列の計・・・×が連続している =SUM((FREQUENCY(IF(A1:A9="×",ROW(A1:A9),""),IF(A1:A9<>"×",ROW(A1:A9),""))*(FREQUENCY(IF(A1:A9="×",ROW(A1:A9),""),IF(A1:A9<>"×",ROW(A1:A9),""))>1))) ★この式は「配列数式」です。式を入力後、CtrlとShiftを押しながらEnterを押して式を確定させてください ★式が確定すれば、式の両端に、{ }がつきます >B列の計・・・○と□が連続している =SUM((FREQUENCY(IF(B1:B9={"○","□"},ROW(B1:B9),""),IF(B1:B9={"×",""},ROW(B1:B9),""))*(FREQUENCY(IF(B1:B9={"○","□"},ROW(B1:B9),""),IF(B1:B9={"×",""},ROW(B1:B9),""))>1))) ★この式も「配列数式」ですので、CtrlとShiftを押しながらEnterを押して式を確定させてください >C列の計・・・□が連続している =SUM((FREQUENCY(IF(C1:C9="□",ROW(C1:C9),""),IF(C1:C9<>"□",ROW(C1:C9),""))*(FREQUENCY(IF(C1:C9="□",ROW(C1:C9),""),IF(C1:C9<>"□",ROW(C1:C9),""))>1))) ★この式も「配列数式」ですので、CtrlとShiftを押しながらEnterを押して式を確定させてください

tomoyochan
質問者

お礼

回答ありがとうございます

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

作業のための表を作って対応するのが最も分かり易く簡単な方法です。 例えばお示しの表が1行目は空白としてA,B,C列の2行目から9行目までにあるとします。 そこで例えばE2セルに次の式を入力してG2セルまで横方向にドラッグコピーしたのちに9行目まで下方にもドラッグコピーします。 =IF(A2="","",IF(OR(A2=A1,A2=A3),MAX(E$1:E1)+1,"")) お求めの答えをA10セルからC10セルに表示させるのでしたらA10セルに次の式を入力してC10セルまでドラッグコピーします。 =MAX(E1:E9)

tomoyochan
質問者

お礼

回答ありがとうございます

  • dondoko4
  • ベストアンサー率12% (1161/9671)
回答No.3

空白以外を数える方法があります。だから、○だろうがXだろうが、関係ありません。カウントが合計ならば。 COUNTA 連続するデーターの意味がちょっと理解不能。

tomoyochan
質問者

お礼

連続するデータとは... 同一の記号が2つ以上出現すると、記号の個数をカウントするという意味です。 ---------- ○ ○ ○ ○ × × □ □ ---------- 上記例だと、6になります。 (連続する○が4、連続する×が2、□と□の間は空白があるため連続するデータとは見なさない)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

回答No.1は正解に近いものですが1行目と2行目に同じデータがある場合に誤差が生じます。 1行目を空欄または項目として2行目以降をデータとして扱えば2行目から比較を行えるので誤差が生じません。 貼付図を確認してください。

tomoyochan
質問者

お礼

誤差の件まで指摘して頂き、限りなくベストアンサーです。 また、貼付図まで用意して頂きありがとうございました。

関連するQ&A

  • excelで連続空白部分の個数を求める

    excelで列の「空白」の個数を数えられるプログラム方法を教えてほしいです。 具体的な出題形式はどんなものかと申しますと、たとえば下記のようにexcelシートA1~A15に「〇」がランダムで記載されているとします。  A  B 1〇 2〇 3 4〇 5 6〇 7〇 8 9 10 11 12〇 13 14 15〇 この場合、A3とA5で計1個の空白部分、A8~A11に4個の空白部分、A13~A14に2個の空白部分があるということになります。 このA列の「〇」と「〇」の間隔にある「空白部分」の個数をB列に表記したいのです。つまり、  A  B 1〇 2〇 3   1 4〇 5   1 6〇 7〇 8 9 10 11   4 12〇 13 14   2 15〇 といったような形です。 今回一番知りたいのは「連続空白部分の個数」を出力したいのです。 大変、申し訳ないですがこのような表記ができる、もしくは連続空白個数を判明できるプログラムはどのようにすればよいでしょうか

  • 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 ・

  • Excelで日付による個数カウント

    過去の質問を検索しても見つけることができなかったので教えてください。 Excelである日からある日までの個数をカウントしたいのですが何かよい方法はありますか?できるだけ簡単な方法が良いのですが。 やりたいこと) 列A 列B A  1/5 B 1/4 A 1/6 B 1/5 A 1/5 B 1/7 B 1/8 B 1/6 たとえば上記のような表があるとして列Bの1/5~1/7の個数を別のセルに表示したいのです。最終的には列Aが“B”かつ1/5~1/7の個数を別のセルに表示したいのです。 回答をお願いします。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • エクセルで文字の個数をカウントする

    エクセルについての質問です。A1,B1,C1,・・・・の中に、○、△、空白が入力されているとします。その時、A1,D1G1,・・・と4列おきに○の数と△の数を別々に求めたいのですが、どのようにしたらよいでしょうか。

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • エクセルでフィルタ後の条件付き個数のカウント

    いつもお世話になっております。 エクセル(2007)で作成した表をフィルタ後に条件に合致する個数をカウントする方法を教えてください。 (例) A列:名前 B列:出身県のデータがあったとします。 名前でフィルタをかけた後、出身県ごとのカウントを行いたいのですが、条件が無い場合のデータ個数はSUBTOTAL関数を使えばOKなのはわかります。 COUNTIFS関数を使うと、フィルタで隠れた行のデータまでカウントしていまいます。 ピボットを使う(使い方がイマイチわかりませんが・・・)という方法もあると思いますが、今回は同一シート無いに関数でカウントしたいのです。 どなたかよろしくお願いいたします。

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • エクセルのカウント

    エクセルを使ったカウントをしたいのですが、どなたか関数を使ったよい方法教えていただけないでしょうか。 値項目に連続して入力されているセルの個数を、カウント項目に出力したいのです。 ここで注意したいのが、出力する箇所は55の開始場所に出力したいことと、 値項目に入力されている値は、55か空白のみになります。 どうかよろしくお願いいたします。

  • エクセルで同じ数字が連続している個数を関数でセルに出力

    A列に1かー1かいずれかの数字が入力されているとき、その行から上方に数えて、B列には1の連続している個数を、C列にはー1の連続している個数を出力したいのです。例えば A列    B列    C列 1      1     0 1      2     0 -1    0     1 -1    0     2 -1    0     3 といった具合です。 この時、B列、C列にはどのような関数を入力すればよいでしょうか。

専門家に質問してみよう