エクセルで連続回数などを調べる方法

このQ&Aのポイント
  • エクセルで連続回数などを調べる方法を紹介します。A列がある値でB列に連続して出てくる特定の値の最大連続回数を調べることができます。さらに、それぞれの最大連続回数の合計を求めることも可能です。
  • エクセルの関数を使用することで、特定の値の最大連続回数を求めることができます。1つ目の質問であるA列が「あ」でB列に「正」が連続して出てくる回数の最大値を求める方法を解説します。
  • 2つ目の質問では、1つ目で求めた最大連続回数を使用して、各値ごとの最大連続回数の合計を求める方法について説明します。エクセルの関数を組み合わせて使用することで、簡単に求めることができます。
回答を見る
  • ベストアンサー

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

エクセルで連続回数などを調べたいです。 なるべく簡単に出来る方法があればぜひ宜しくお願いします。 例えば      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」 ・・・・ のように出したいのです。 それぞれの答えを入力するセルは違います。 こちら、関数もよく分からない状態です・・・。 マクロなどは、「マクロ」という言葉しか分からない状態です。(すいません・・・) 大変お手数をおかけ致しますが、お詳しい方がいらっしゃれば、どうぞ宜しくお願いします。

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

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

お示しの表のデータが2行目から下方に有るとします。C列は作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(AND(A1=A2),C1+1+ABS(B2)/10000,1+ABS(B2)/10000)) 次に答えの表ですが例えばD2セルから下方にあ、い、などとA列で使われている文字列を入力します。 E1セルには正の最大連続回数、F1セルには不の最大連続回数、G1セルには正の最大連続回数における合計値、H1セルには不の最大連続回数における合計値と入力します。 E2セルには次の式を入力して式を決定する段階でCtrlキーとShiftキーを同時に押しながらEnterキーを押します。配列形式といって数式バー上の式には前と後ろの部分に{ }が付いた状態の式となります。この式をH2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF($D2="","",IF(COLUMN(A1)=1,INT(MAX(IF(($A$2:$A$800=$D2)*($B$2:$B$800>0),$C$2:$C$800))),IF(COLUMN(A1)=2,INT(MAX(IF(($A$2:$A$800=$D2)*($B$2:$B$800<0),$C$2:$C$800))),IF(COLUMN(A1)=3,MOD(MAX(IF(($A$2:$A$800=$D2)*($B$2:$B$800>0),$C$2:$C$800)),1)*10000,IF(COLUMN(A1)=4,MOD(MAX(IF(($A$2:$A$800=$D2)*($B$2:$B$800<0),$C$2:$C$800)),1)*-10000,"")))))

yu_sora
質問者

補足

ご回答ありがとうございます。 新たに表を作成してみて、教えていただいたとおりに入力してみました。 結果、数字が出てちゃんと式が成り立っているようです。 ただ、私の伝え方が悪かったのだと思いますが、思っていたのと違う感じでした・・・。 A列には「あ」と「い」の2種類の文字がランダムに入っています。 B列には、「正の数字」と「負の数字」がランダムに入っています。 ※「あ」なおかつ「正の数字」という同じ条件が縦に2つ連続する場合や3つ連続する場合や4つ連続する場合などさまざまです。 (「あ」で「負」・「い」で「正」・「い」で「負」もです) そこで、 C2セル→「あ」でなおかつ「正の数字」の最大連続回数。(※の例で言えば「4回」) D2セル→「あ」でなおかつ「負の数字」の最大連続回数。 E2セル→「い」でなおかつ「正の数字」の最大連続回数。 F2セル→「い」でなおかつ「負の数字」の最大連続回数。 G2セル→C1セルの最大連続回数が4回なら、その4つの数字の合計値。 H2セル→上と同じくD2セルに出た最大連続回数の合計値。 I2セル→上と同じくE2セルに出た・・・・ J2セル→上と同じくF2セルに出た・・・・ というように、答えを出すことは出来ますでしょうか? (上に書いた答えを入れるセル「C2セル」などは例えです。どこでもいいんですが) 【例】 あ 100    ←の場合、「あ」なおかつ「正」の連続は2回と3回があり、一番大きい回数は「3」。 あ 100         求めたい最大連続数は「3」となる。 あ 100         そして、求めたい最大連続数の合計値は「300」となる。 い 100 い 100 い 100 あ 100 あ 100 い 100 い 100 あ -100 あ -100 あ -100 い -100 い -100 い -100 あ -100 あ -100 い -100 い -100 というような感じです・・・。 上の表のように、少なかったらもう手作業で数えようかとも思うのですが・・・。 本当に説明が下手で申し訳ありません。 あと、もし最大連続回数が「4」として、4回連続するのが何度かある場合は、 一番合計値が高い数値が欲しいです。 どうぞ宜しくお願いします。

その他の回答 (3)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

簡単とは言っても求めることがいろいろあるので、そうもいきません。 正か負か 前行と同じ「あ」か 同じ「あ」なら連続n番めか、ちがえば1にしたか 前行との合計はいくらか、ちがえば0にしたか 最大はどれか、その合計はいくつか これだけのことをするので、C列D列以右列を有効に使うことです。 機能分けて組み立てを考えてどこまでできますか。関数で使えるものあります。 回答で飛躍しすぎて何やっているかわからないようなら、さらに説明もらうか、今回は使わない、が良いです。関数とか覚えて来たら使うでいいでしょう。 VBAを使うとまた違った手法になります。

yu_sora
質問者

お礼

お礼が遅くなり申し訳ございません。 無事、求めたい数字を出すことが出来ました。 もっと勉強したいと思います。 何度もご回答を頂きまして、本当にありがとうございました。

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

回答No1です。こちらが示した通りに作業列を作って試験されているのでしょうね。 あ の文字をD2セルに入力することで、「あ」で正の最大連続回数はE2セルに、「あ」で負の最大連続回数はF2セルに、「あ」で正の最大連続回数での合計はG2セルに、「あ」で負の最大連続回数での合計はH2セルに表示されますね。 同様に い の文字をD3セルに入力することで、「い」で正の最大連続回数はE3セルに、「い」で負の最大連続回数はF3セルに、「い」で正の最大連続回数での合計はG3セルに、「い」で負の最大連続回数での合計はH3セルに表示されますね。 あなたが繰り返して述べておられますがNo1で回答した方法は「あ」や「い」の文字が、また、正や負の数値がばらばらに入力されていても連続した状態を調べてその連続が最大の回数を求めているのです。また、同じ最大の回数になっている場合にはその合計が最も大きい合計を求めています。 A2セルとB2セルから下方にあなたが示されたような組み合わせをたくさん入力してみてください。 E2セルからH3セルの範囲に正しい答えが表示されることでしょう。 あなたはエクセルの初心者といっておられますがご質問の内容は高度なものです。式の内容を理解することは難しいかもしれませんが努力してください。

yu_sora
質問者

お礼

KURUMITO様 お世話になっております。 出来ました! NO1で頂いたご回答を何度も試して、きちんと求めたい数字が出すことが出来ました。 (出来なかった時はどこで間違っていたのかが結局分からないままですが・・・) 何度もご回答を頂きまして、本当にありがとうございました。

yu_sora
質問者

補足

再度のご回答をありがとうございます。 少し前進しました。 最初に頂いたご回答の通りに、試験をしていたつもりでしたが、 >D2セルから下方にあ、い、などとA列で使われている文字列を入力します。 という所を間違って解釈しており、A列の「あ」「い」の並びを そのままD2セルから下へコピーしてしまっていました。 その為、E~H列にたくさんの数字が出てきてしまっていたので、 そこで戸惑ってしまっていました。 今回頂いたご回答で、D2のセルだけに「あ」という文字。D3のセルだけに「い」の文字を 入力するということがやっと分かりました。 やってみたところ、E~Hの2、3セルだけにそれぞれ数字が出ました。 でも、全部「0」と出るので、まだ何か間違いを犯しているのだと思います。 あとは自分なりに頑張ってやってみます。 (KURUMITO様のご回答を私がどこかで間違えているはずなので・・・) エクセルの初心者ですが、調べながら他の関数を知り、使い、なんとか表が出来てきました。 質問させて頂いた箇所で、どうにもこうにも進める事が出来なくなって、 質問をしてしまったのですが、甘えだったのかも知れません。 努力はしていたつもりですが、出来きれていなかったのかも知れません・・。 質問内容がそれほど高度なことだという事も分からない位でした。 ご迷惑をおかけして申し訳ありませんでした。 ちゃんと完成したら補足では無くお礼を書かせて頂きたいので 今はこちらから失礼します。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

数式としては C1に1、D1に64、 C2に2、D2に164、 E3に1、F3に30、 E4に2、F4に70、 E5に3、F5に90、 となるように考えると MAX関数が使えます。 CDとEFに分けるのは、あだけ、いだけ、の区別です。 あ、い、2通りしかないのでしょうか。 連続3回がほかにもあって2回以上出現したらどういう結果を期待しますか。

yu_sora
質問者

補足

ご回答ありがとうございます。 私の説明不足で、申し訳ありません。 NO1の回答者様へも補足をさせて頂きました。 宜しければ見ていただけますか? なお、 >あ、い、2通りしかないのでしょうか。 はい。2通りです。 >連続3回がほかにもあって2回以上出現したらどういう結果を期待しますか。 一番合計値が大きいものが欲しいです。

関連する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 ・

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

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

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

    例えば、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      C     D 1 ▲ 1.1   #DIV/0! 2 ▲ 1.3   1.4 3 1.5     #DIV/0! 4 #DIV/0!   ▲0.8 5 0.1     ▲2.1 6 ▲ 0.2   #DIV/0! 7 #DIV/0!   0.5 8 0.2      0.2 9 10 上記の様に、正の数・負の数・#DIV/0!が混載しています。 この状態でA9・B9・C1~C8に正の数のみを足した合計値。 A10・B10・D1~D8に負の数のみを足した合計値を出したいのですが可能でしょうか。 30列×20行×4シートほど有り、1つづつ計算すると大変なので簡単にやりたいです。 すみませんが宜しくお願いします。

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

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

  • エクセルについてお尋ねします。

    A列の1行目から300行目までに 300回のジャンケンの結果があります。 A1 勝 A2 負 A3 勝 A4 勝 A5 負 ・ ・ ・ と ここで求めたいのが 最大連敗数 最大連勝数 2連敗の回数 3連敗の回数 4連敗の回数 5連敗の回数 ・ ・ ・ ・ なのですが どのようにすれば良いでしょうか? よろしくお願いいたします。

  • excelで連続出現数の頻度の算出

    お知恵をお貸しください。 シート1にデータがA列は01~09が文字列、10は数値 B列は10~15,C列 は16~20…というふうに入っています。 たとえば、01が下の行に2回連続して入ったら2回連続が1カウント、 離れた行にまた2回連続で入ったらまた1カウントで、合計2回連続ということで 違うシートには2回 2 という風に連続した回数が何回あったかを 出したいのです。 なにかいい方法はありませんか。 お示ししたのは画像ファイルですので、関数の式またはマクロの構文をお知らせいただけると助かります。 よろしくお願いいたします。

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

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

    こんにちは。 私は営業部の数字を管理しているのですが今困ってます。 目標に対する達成率が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列に任意の正負の数が次のように並んでるとします。 A 32 24 -55 44 58 30 -40 27 -59 この時B列に次のように入力したいと思います。 A B 32 24 -55 (32+24+(-55*2)) 44 58 30 -40 (44+58+30+(-40*3)) 27 -59 (27+(-59*1)) つまり、負の数が出てきた行のB列に 「それまでに出てきた正の数の和-(そのセルの数字×正の数の個数)」 という出力をしたいです。 このように出力する方法はあるでしょうか。どなたか教えてください。

専門家に質問してみよう