dポイントプレゼントキャンペーン実施中!

エクセルで、○が連続するケースの数を数えるには?
今、A1~BB1まで、○が入った表が在ります。その中で、○○のように、○が連続するケースの数を数えて表示する関数をBC1のセルに入れたいと思います。
因みに、下記の表では、○が連続するケースは3つです。
宜しくお願いします。

×××○××○○×××××○××○×××××○○○×××○×××○×××○○×××・・・・・・

A 回答 (11件中1~10件)

>No.9では、Sheet1とSheet2を使うようですね?


そうです。
Sheet1のA1にあるマークをチェックするためにSheet2のA1セルに関数式を入れます。
Sheet1のB1にあるマークをチェックするためにSheet2のB1セルに関数式を入れます。
Sheet1のC1からBB1セルのマークをチェックするための関数式はSheet2のB1セルをSheet2のC1からBB1セルにコピーします。

>それぞれの何処にどのような関数を入れるのでしょうか?
Sheet2のA1には次の関数式を入力します。
=IF(Sheet1!A1="○",1,0)
A1は先頭セルなので単独に判定し、○の時は1、×の時は0になるよう論理式を使います。
Sheet2のB1には次の関数式を入力します。
=IF(Sheet1!B1="○",A1+1,0)
B1は○の時A1プラス1とし、×の時は0になるよう論理式を使います。
回答No.7では複雑な論理式を提示しましたが結果として今回の論理式で良いことが分かりました。
Sheet2の1行目をA1からBB1まで選択し、2行目から50行目までコピーします。
Sheet1のBC1には次の関数式を入力します。
=COUNTIF(Sheet2!A1:BB1,2)
この関数式はSheet2のA1からBB1までの間に値が2であるセルの数をカウントします。
Excel 2013の場合は関数式が不適切となる場合がありますので、その時はBD1に関数式を入力してください。
Sheet1のBC2からBC50まではBC1をコピーします。
    • good
    • 0
この回答へのお礼

懇切で丁寧なご説明、有り難うございました。
お陰さまで、期待通りの処理が出来ました。
また、何かありましたら、宜しくお願い致します。

お礼日時:2013/07/28 11:45

#3です、


「シート1にデータがあるなら、シート2からシート1を参照すれば」と思ったら
もう既に他の方が回答されてますね。
    • good
    • 0
この回答へのお礼

再度のご登場、有り難うございます。
今回は、別の方の回答が有益でしたのでそれを使わせて頂きますが、またの機会には、宜しくお願い致します。

お礼日時:2013/07/28 11:42

>わたしがしたかった作業は、仮に「×○×××○○××○○×・・・」というような行がA1からBB50までのセルに在った場合、


作業用セルの位置を変更するだけで同じ手法が利用できます。
○、×のデータのみSheet1のA1からBB50までとして作業用セルをSheet2の相対セルにする方法が分かり易いと思います。
「エクセル、○が連続する回数を数えるには?」の回答画像9

この回答への補足

No.9では、Sheet1とSheet2を使うようですね?
それぞれの何処にどのような関数を入れるのでしょうか?
宜しくお願い致します。

補足日時:2013/07/27 22:05
    • good
    • 0
この回答へのお礼

再度のご回答、有り難うございます。
全くの文系人間で、関数にも素人ですので、No.7のご回答のように、改めて、丁寧にご教示頂けないでしょうか?
No.9では、Sheet1とSheet2を使うのでしょうか?
もし、そうでしたら、それぞれのシートには、どこにどのような関数が入るのでしょうか?
お手数ですが、宜しくお願い致します。

お礼日時:2013/07/27 22:01

>というような行がA1からBB50までのセルに在った場合



という状況を織り込んだ方法を回答済みですが、寄せられた回答をどれも同じと思い込んでロクに見ても試してもいない、失礼な方だということが良くわかります。



#既に×が付いてた方でしたのでもう回答はしないつもりでしたが、これにて。
「エクセル、○が連続する回数を数えるには?」の回答画像8

この回答への補足

ご機嫌を損ねてしまったのでしたら、謝ります。
ご教示頂いた方法を試してみたのですが、期待した結果が出ないのです。
○の連続が在るのに0と表示されたり、逆に、無いのに2と表示されたり・・・。
何処に問題があったのか、見直してみます。

補足日時:2013/07/27 21:27
    • good
    • 0

<br /> 考え方としてA1からBB1までのセルに○または×が1つずつ保存されていることを条件とします。<br /> A1の

の扱いになります。
作業用にA2からBB2までを使う条件で考えます。
A2には次の式を使います。
=IF(A1="○",1,0)
B2には次の式を使います。
=IF(AND(A1="×",B1="○"),1,IF(AND(A1="○",B1="○"),A2+1,0))
C2からBB2まではB2をコピーします。
BC1には次の式を使います。
=COUNTIF(A2:BB2,2)

作業用セルには×の列に0が、○の列には○の連続数が入りますので2が入っているセルの個数を数えれば目的の結果を得られます。
「エクセル、○が連続する回数を数えるには?」の回答画像7

この回答への補足

申し訳ありません。
「お礼欄」で「AC1」としたのは、正しくは、「BC1」です。
宜しくお願い致します。

補足日時:2013/07/27 19:37
    • good
    • 0
この回答へのお礼

ご回答、有り難うございます。
件(くだん)の質問は、削除、或いは締め切りたかったのですが、方法が分からず、そのままにしておきました。

で、本件ですが、実は、わたしの説明不足で、皆さまにはご迷惑をおかけしました。わたしの本意は、「対象行が1行だけではなく、複数行の場合」だったのです。
皆さまのご提案は、対象行が1行だけでしたら完全ですが、複数行では使えませんよね?
わたしがしたかった作業は、仮に「×○×××○○××○○×・・・」というような行がA1からBB50までのセルに在った場合、AC1に入力してAC50までドラッグし、「○○」のように、「○が連続する回数が各行に何回あるかを、AC1からAC50のそれぞれのセルに表示させる」関数、或いは方法を知ることでした。
さしでがましいですが、もし、そのような関数か方法があれば、ご教示願えれば有り難いです。

お礼日時:2013/07/27 19:28

回答No5です。


ごめんなさい。No5の解答では○が3個以上にも続いた場合には正しい答えが得られません。
次のようにしてください。
作業のための列や行を作って対応します。
例えばBE1セルには次の式を入力してDF1セルまで横方向にドラッグコピーした後で下方にもドラッグコピーします。

=IF(COUNTIF(A1:B1,"○")=2,IF(BD1="",0,BD1)+1,"")

お求めの値をBC列に表示させるためにはBC1セルには次の式を入力して下方にドラッグコピーします。

=IF(COUNT(BE1:DF1)=0,"",COUNTIF(BE1:DF1,1))

この回答への補足

申し訳ありません。
「お礼欄」で「AC1」としたのは、正しくは、「BC1」です。
宜しくお願い致します。

補足日時:2013/07/27 19:36
    • good
    • 0
この回答へのお礼

ご回答、有り難うございます。
実は、わたしの説明不足で、皆さまにはご迷惑をおかけしました。わたしの本意は、「対象行が1行だけではなく、複数行の場合」だったのです。
皆さまのご提案は、対象行が1行だけでしたら完全ですが、複数行では使えませんよね?
わたしがしたかった作業は、仮に「×○×××○○××○○×・・・」というような行がA1からBB50までのセルに在った場合、AC1に入力してAC50までドラッグし、「○○」のように、「○が連続する回数が何回あるか」を表示させる関数、或いは方法を知ることでした。
さしでがましいですが、もし、そのような関数か方法があれば、ご教示願えれば有り難いです。

お礼日時:2013/07/27 19:20

作業のための列や行を作って対応します。


例えばBE1セルには次の式を入力してDF1セルまで横方向にドラッグコピーした後で下方にもドラッグコピーします。

=IF(COUNTIF(A1:B1,"○")=2,IF(BD=1,"",1),"")

お求めの値をBC列に表示させるためにはBC1セルには次の式を入力して下方にドラッグコピーします。

=IF(COUNT(BE1:DF1)=0,"",SUM(BE1:DF1))
    • good
    • 1

猿でもできる簡単な方法:


今○×がシート1のA1からBB1まで記入してあるとして
仮にシート2のA1に
=IF(Sheet1!A1="○",B1+1,0)
と記入,右向けにBB1までコピー

シート1に戻りBC1に
=MAX(Sheet2!1:1)
と記入して完成。

この回答への補足

申し訳ありません。
「お礼欄」で「AC1」としたのは、正しくは、「BC1」です。
宜しくお願い致します。

補足日時:2013/07/27 19:36
    • good
    • 0
この回答へのお礼

ご回答、有り難うございます。
実は、わたしの説明不足で、皆さまにはご迷惑をおかけしました。わたしの本意は、「対象行が1行だけではなく、複数行の場合」だったのです。
皆さまのご提案は、対象行が1行だけでしたら完全ですが、複数行では使えませんよね?
わたしがしたかった作業は、仮に「×○×××○○××○○×・・・」というような行がA1からBB50までのセルに在った場合、AC1に入力してAC50までドラッグし、「○○」のように、「○が連続する回数が何回あるか」を表示させる関数、或いは方法を知ることでした。
さしでがましいですが、もし、そのような関数か方法があれば、ご教示願えれば有り難いです。

お礼日時:2013/07/27 19:19

VBAがよさそうだけど、ワークシート関数のみで押し切るなら。



1)セルA1に式[=if(A1="○"A1=B1),1,0)]を設定
2)セルB2に式[=if(and(A1="○",A1=B1),A1+1,0)]を設定
3)セルB2をコピーしてセルBB1まで貼り付け。
4)counta関数で2行目が[2]のセルを数える。

この回答への補足

申し訳ありません。
「お礼欄」で「AC1」としたのは、正しくは、「BC1」です。
宜しくお願い致します。

補足日時:2013/07/27 19:35
    • good
    • 0
この回答へのお礼

ご回答、有り難うございます。
実は、わたしの説明不足で、皆さまにはご迷惑をおかけしました。わたしの本意は、「対象行が1行だけではなく、複数行の場合」だったのです。
皆さまのご提案は、対象行が1行だけでしたら完全ですが、複数行では使えませんよね?
わたしがしたかった作業は、仮に「×○×××○○××○○×・・・」というような行がA1からBB50までのセルに在った場合、AC1に入力してAC50までドラッグし、「○○」のように、「○が連続する回数が何回あるか」を表示させる関数、或いは方法を知ることでした。
さしでがましいですが、もし、そのような関数か方法があれば、ご教示願えれば有り難いです。

お礼日時:2013/07/27 19:18

作業列を作成して良いのでしたら簡単に関数で算出出来ます。


他の関数で作業列が不要な方法があるのかもしれませんが・・・

2行目に作業列を作成するものとします。

A2式=IF(A1="◯",1,0)
B2式=IF(B1="◯",A2+1,0)
B2に式入力後BB2までフィルコピー
BC1式=MAX(A1:BB1)

ご参考まで

この回答への補足

申し訳ありません。
「お礼欄」で「AC1」としたのは、正しくは、「BC1」です。
宜しくお願い致します。

補足日時:2013/07/27 19:33
    • good
    • 0
この回答へのお礼

ご回答、有り難うございます。
実は、わたしの説明不足で、皆さまにはご迷惑をおかけしました。わたしの本意は、「対象行が1行だけではなく、複数行の場合」だったのです。
皆さまのご提案は、対象行が1行だけでしたら完全ですが、複数行では使えませんよね?
わたしがしたかった作業は、仮に「×○×××○○××○○×・・・」というような行がA1からBB50までのセルに在った場合、AC1に入力してAC50までドラッグし、「○○」のように、「○が連続する回数が何回あるか」を表示させる関数、或いは方法を知ることでした。
さしでがましいですが、もし、そのような関数か方法があれば、ご教示願えれば有り難いです。

お礼日時:2013/07/27 19:17

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A