• ベストアンサー

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

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列にはどのような関数を入力すればよいでしょうか。

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

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

一例として。 B1に「=IF(A1=1,1,0)」、C1に「=IF(A1=-1,1,0)」 B2に「=IF(A2=1,B1+1,0)」、C2に「=IF(A2=-1,C1+1,0)」 B2とC2を下にコピペ。

blackleon
質問者

お礼

ありがとうございました。 回答に示されるとなるほどと思いますが、なかなかこういう発想が思い浮かびません。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

A列 B列 C列 1  1  0 1  2  0 1  3  0 -1  0  1 -1  0  2 -1  0  3 1  1  0 1  2  0 -1  0  1 -1  0  2 上記のようにA列に1またはー1が繰り返して入力されて、そのブロックごとの出現回数を表示するなら以下の関数を入力します。 B1セル =(A1=1)*1 B2セル =IF(A2=1,IF(A1=-1,1,B1+1),0) 下方向にオートフィル C1セル =(A1=-1)*1 C2セル =IF(A2=-1,IF(A1=1,1,C1+1),0) 下方向にオートフィル

blackleon
質問者

お礼

ありがとうございました。 基本的にはN02の方と同じご回答だと思いますので、ご回答順ということで10ptにさせていただきました。

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

B1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1=1,COUNTIF($A$1:$A1,$A1),IF($A1<>"",0,"")) C1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1=-1,COUNTIF($A$1:$A1,$A1),IF($A1<>"",0,""))

blackleon
質問者

お礼

ご回答ありがとうございました。トータルの数をもとめるのではなく、連続する数をもとめたいので、異なる数が出てきたときはそこから再び数えなおすような感じです。 説明が足らずに申し訳ありませんでした。

関連するQ&A

  • エクセルで二つのセルにある数字の差の個数を表示したい

    エクセルでの質問です。 どう質問したら良いか、うまく伝わるかよくわからないのでわかりづらかったらすみません。 Aの列に「1」Bの列に「~」Cの列に「4」が入力されているとします。 入力されている数字は、通し番号の一部です。 Dの列に、1~4までの数字の個数である「4」を表示させたいと思っています。 1234、と指を折って数えると4になる、それです。 数字の多い方から少ない方を引いて、1を加えるというのは考えたのですが A列のみの入力でC列に入力なしの、D列の結果が「1」という場合もあり それをスマートに表示させる方法は何かないかと模索しております。 質問がわかりにくくてすみません。 A B C D 1 ~ 4 4 7 ~   1 こんな感じです。 実際は6桁の通し番号で、行も多いです。 計算式を入れて、下行にコピー。で対応したいのですが、 なんともうまくいきません。 ご教授頂けると助かります。

  • エクセル関数 セルの個数

    A列に空白セルと文字列が入力されています。 文字列が入っているセルだけをフィルタで抽出しました。 その抽出されたセルが何行あるか個数を出す関数はありませんか?

  • ExcelVBAのデータの連続する個数の検索

    A~Fの各列ごとに、121以上の数字が連続する個数を出力し、出力したデータの最大値を求めたいのですが、どうやって式を組んだらいいか、わかりません。 アドバイスいただけましたら幸いです。 A / B / C / D / E / F 118.19 / 118.11 / 118.22 / 118.20 / 118.20 / 118.74 120.93 / 120.86 / 120.96 / 120.92 / 120.92 / 121.44 123.45 / 123.35 / 123.45 / 123.43 / 123.43 / 123.88 120.97 / 121.04 / 120.94 / 121.00 / 120.97 / 120.93 118.57 / 119.48 / 118.69 / 121.52 / 118.48 / 119.69 123.48 / 123.35 / 123.44 / 123.43 / 123.41 / 123.61 123.59 / 120.47 / 123.58 / 123.57 / 123.57 / 123.74 連続する個数 1コ / 2コ / 1コ / 5コ / 1コ / 2コ 2コ / 1コ / 2コ / - / 2コ / 2コ 最大値 2コ /2コ /2コ /5コ /2コ /2コ

  • エクセル関数

    次のような場合の関数をご教示頂けないでしょうか? ・A列には、時々連続する通し番号が入っています。 例 1 2 3 4 4 4 5 6 7 7 7 7 7 8 ・B列には、A列が1個の数字の行には 0 が、複数の数字の行には 1 が入っています。 例 0 0 0 1 1 1 0 0 1 1 1 1 1 0 ・C列に、関数で次のように自動入力したいのです。  B列が 0 なら 0  B列が 1 のグループの先頭行には 1  B列が 1 のグループの途中の行には 2  B列が 1 のグループの最後の行には 3 例 0 0 0 1 2 3 0 0 1 2 2 2 3 0 どういう関数になりますでしょうか? よろしくお願い致します。

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

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

  • EXCEL関数でセルの数値の個数を求めたい

    以下のように各セルに入力されている場合に各セルに含まれる "," を除いた数字の個数の合計を求めたいのですが、どのようにすればできるでしょうか。 以下の場合ですと、 1行目 3個 2行目 2個 3行目 3個 で、8個という結果を得たいです。 LEN(substitute(A1,",","")) や (LEN(A1)+1)/2 などで一つ一つのセルに含まれる数値の個数は出せますが、列全体の個数の合計を求めたいです。 ---- 列A 行1-> 3,6,9 行2-> 2,5 行3-> 2,8,11 ※入力規則として、数値を","で区切ります。 ※列を追加して上の関数を各行に設定した上で合計を出す方法以外で。

  • 関数中にセルに入力した値を反映させて計算を行いたい

    こんにちは Excelを用いた計算を行っているのですが 自分の知識では出来なかったために皆様の知恵を借りたいと思っています Excelで単純な足し算を行いたいのですが とあるセルに入力した値によって計算範囲を変更したものを作りたいと考えています 仮にA行1列からA行20列まで各セルに1,23…20と順番に1つの数字が各セルに入力されていたとします この時, B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力される (イメージとしたら結果として1+5より6が出力される) B行1列のセルに10という数字が入力されていたら C行1列にA行1列数字とA行10列の数字の和が入力される (イメージとしたら結果として1+10より11が出力される) ような関数を作りたいと考えています 自身の甘い考えで B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力されるのは C行1列に=A1+A(B1)と入力したら出来るのではないかと考えていたのですが どうもできないみたいです なにか方法等浮かぶ方がいらしましたら回答をお願いします

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

    エクセルにて、   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増えてしまう状態です。 お手数ですが、ご回答のほどよろしくお願いします。

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

  • エクセルのIF関数について

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

専門家に質問してみよう