• ベストアンサー
  • すぐに回答を!

Excel 連の数の数え方について

過去の質問を参照したのですが、見つけることができなかったので質問させていただきます。 例えば、 10000011100101000 のような列があったとして、連というのは同じ数字の塊のことをいいます。上の例だと最初の1で1つの連と数えて、次の00000で1つの連と数えます。つまりこの例では17個の数字からなる数列に8個の連があることになります。 この連をエクセルで数えるにはどの関数を使えばいいでしょうか。 具体的にいうと、A列に-1と0と1がランダムに2000個ほど並べてあって、その連の数を私は数えたいのです。どなたかエクセルに詳しい方、ご教授ください。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数231
  • ありがとう数9

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

  • ベストアンサー
  • 回答No.1
  • tom04
  • ベストアンサー率49% (2537/5117)

こんにちは! 一例です。 データはA1セルからあるとします。 関数での方法!というコトですので、 B1セルに「1」と入力 次にB2セルに =IF(A2<>A1,MAX(B$1:B1)+1,"") という数式を入れB2セルのフィルハンドルでダブルクリック! 最後に表示したいセルに =MAX(B:B) とすればお望みの数値が表示されると思います。m(_ _)m

共感・感謝の気持ちを伝えよう!

質問者からのお礼

こんにちは。素早い回答ありがとうございます!まさにこれが知りたかったのです。助かりました。皆さん私が求めていた回答でしたが、一番早かったのでベストアンサーに選ばせていただきます。

関連するQ&A

  • ExcelのCOUNTA関数で数えた数だけ連番を付けるには

    ExcelでB列から下の行にデータが入力されています。 そのデータ数を数えるために,B4セルに=COUNTA(B5:B100)関数を入力します。 B4セルで数えた数を元にして,A5,A6,A7・・・と下方向にその数まで1,2,3・・・と連番を付けていきます。 もしB4セルの値が0なら連番は付けません。 以上のマクロをシートに貼り付けるにはどのようにしたらよいでしょうか? 教えてください。お願いします。

  • エクセルで、○について連番を自動で振るには?

    エクセルで、○と入力したら、○の数の連番を振ることはできますか? エクセル初心者です。 _ A列 1 ○1 2 ○2 3 4 ○3 5 6 ○4 出来ればつけた連番は○より小さくなるとありがたいです。 B列ではなく、A列の○の右横に反映させたいです。 マクロなら可能でしょうか?

  • エクセルの計算式について教えてください

    エクセルの計算式について教えてください A列にはA~Zまでのアルファベットがランダムに並んでいます。 B列には1~9間での数字がランダムに並んでいます。 C-3 の数 (つまりA列がCでB列が3) がいくつあるかカウントさせる式を作りたいのです。 エクセルでは基本的なことかもしれませんが、まだ十分理解していません。何かエクセル関数理解のお勧めのサイトがあればついでに教えてください。

その他の回答 (4)

  • 回答No.5
  • bunjii
  • ベストアンサー率43% (3558/8174)

回答No.4の訂正です。 A2000が0のとき計数に誤りがありました。 A2001が未入力の場合は0と等価になるので1個の不足になります。 従って、次のように訂正します。 =1+SUMPRODUCT((A1:A1999<>A2:A2000)*1) A1は既に1個として確定しています。 A2以下を上のセルと比較し、同じときは0で異なるときが1とします。 これをA2からA2000まで合計して加算すれば目的に合います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

この関数は知りませんでした。助かりました。ありがとうございました。

  • 回答No.4
  • bunjii
  • ベストアンサー率43% (3558/8174)

>具体的にいうと、A列に-1と0と1がランダムに2000個ほど並べてあって、その連の数を私は数えたいのです。 考え方はA1<>A2の比較を順次下のセルへ繰り返し、上下のセルの値が違う組み合わせの数を数えれば良いことになります。 次の数式で一挙に計数できます。 =SUMPRODUCT((A1:A2000<>A2:A2001)*1)

共感・感謝の気持ちを伝えよう!

  • 回答No.3

No.1の方と似たような回答になりますが… データがA1セルから入っているとします。 まずB1セルに1と入力します。 次にB2セルに =IF(A2<>A1,B1+1,B1) と入力し、B2セルをコピーして下方向に、B列の最終行まで貼り付けます。 これでB列の値は、A列の値が変わるごとに1ずつカウントアップされていきますので、最終行のB列の値が連の数になります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

勉強になりました。ありがとうございます!

  • 回答No.2
noname#204879

数列がセル A1~O1 までの 17個の場合、   =SUMPRODUCT((A1:P1<>B1:Q1)*1)+1 数列がセル A1~BXX1 までの 2000個の場合、   =SUMPRODUCT((A1:BXW1<>B1:BXX1)*1)+1

共感・感謝の気持ちを伝えよう!

質問者からのお礼

こういう関数もあるのですね!ありがとうございました!

関連するQ&A

  • エクセルで質問です。

    エクセルで質問です。 A列にランダムで1から100の数字がランダムにあるとして、B列に1から10の数字のみに『○』といれるにはどうすればいいでしょうか。 例: A   B 22 89 55 3   ○ 74 6   ○ ちう具合です。

  • EXCELの関数について

    EXCEL初心者です。 これに悩み始めて早1週間。どうしても答えが見つからないので質問させていただきます。 A列に数字(-100から50)がランダムに入っています。B列に条件を入れたいのですが、 もしA列の数字がマイナスならばB列にその数の絶対値を もしA列の数字がプラスならB列には0を表示させたいのです。 たとえば以下のようにB列に表示させるにはどのような関数を 使えばいいのでしょうか?   A列     B列 -53     53  35      0 以上、よろしくお願いいたします。  

  • Excelで質問です。連番に関してです。

    Excelで質問です。連番に関してです。 明日仕事で使うので急いでいます。 A  1  1 A  1  2 A  1  3 A  2  1 A  2  2 A  2  3 A  2  4 A  2  7 A  2  8 A  3  1 A  3  2 A  3  3 A  3  4 B  1  1 B  1  2 B  1  3 B  2  1 B  2  2 B  2  3 例えると上記のような感じのデータがあります。 Aというグループ内(左側の列)で 1というデータ(真ん中の列)に 1,2,3…という連番(右側の列)が 順番に振られています。 イメージとしてはA-1というキーに対して1,2,3... という数字が連番としてそれぞれ振られている感じです。 ※並び替えは昇順で済んでいます 目的としては右側の列である連番の途切れた部分に追加で番号を 2つ分入力し、 A-1-4 A-1-5 というキーが欲しいのです。 つまりが若い空き番から順に2つ使用するデータを拾うには どうすれば良いか…ですね。 (例)1,2,3で途切れている場合は4,5と入力。 もしこれだけならば問題は無かったんです。 =IF(C2+1=C3,"","▲") で、▲のついているところから途切れの箇所を拾えます。 しかし、他にもこんなパターンがあるのです。 (パターン1)1,2,3,8,9,10... これで欲しいのは4,5。 上記のやり方だと必要ない11,12も拾ってしまいます。 ※あくまで「左側の列-真ん中の列」というキーに対して 番号を割り振るのは2つまで。同じキー内に途切れが 二つある時点で上記のやり方が出来ません。 (パターン2)4,5,6... これで欲しいのは1,2。 最初から抜けています。 (パターン3)1,2,3,5,6,10,11... これで欲しいのは4,7 1つ空き番があって、次が離れています。 Excelの関数だけでどうにかできるかは分かりません。 マクロで解けるらしいですが、自分はマクロは使えません…。 あとAccessを活用して何とかできないか…とも思ってます。 ※元々このデータはAccessからエクスポートしたデータです 数万行あるデータだけに手入力は絶対に無理です。 空き番に2つ数字を割り振る方法があれば教えていただけると助かります。 Accessを組み合わせての方法でも良いです。 ただし、当方AccessはExcel以上に無知なもので…。 よろしくお願いいたします。

  • エクセルの関数に詳しい方、教えてください!

    エクセルで、たとえば 1,1,1,1,2,2,3,3,3,3,3,4,5,5 など、それぞれの数字がひとつずつ一列にセルに入っているとき、 1,2,3,4,5, などと変更する関数ってありますか?もしくは、数字の数を数えて上の例なら、 5 という結果が出てくれる用にできたら助かるのですが・・・ どなたがご存じないでしょうか?

  • VBAのプログラムに関してです

    VBAに関する質問です。 いま、A列に0&#65374;4の数字が順番に繰り返し記入されていて(数字の数はランダム)、B列に適当な値が記入されています。A列の中から1を探しだして(1つ上の行の数字が0)、 その行から1つ戻ったB列の値をC列に記入、A列の次の0&#65374;4の繰り返しで同じ条件の1を探してその行から2つ戻ったB列の値をD列に記入する。といったことをA列が空白の行になるまで繰り返し行うというプログラムを教えてほしいです。お願いします。 例) A:00011112233400001123334400011111122233400000&#65293; B:12345678912345678912345678912345678912345678&#65293; となってるA列のそれぞれの0&#65374;4の塊の最初の1をさがしてそれに対応するBをそぜぞれ求めていくというものです。 この場合だと実行結果C・D列には C:379 D:688 となってほしいです。

  • excelを用いた数列比較について教えてください!

    仕事で求められたもののexcelでのプログラミングに疎く、困っています。 何卒ご回答をお願いいたします。 ---------------------------------------------------------------- 【例】 A列    B列 1    1 2    -- 3    2 4    -- 5    9 --   4 --    5 ---------------------------------------------------------------- 上記のように、数字と記号の混じった数列が二つあります。 上の行から順番に、記号は関係なく数字を比較していき、異なっている数字の両方をわかるようにしたいのです。 上の例でいえば、左の列の「3」と右の列の「9」をチェックしたいです。 皆様、どうぞよろしくお願いいたします。

  • エクセルでリストから0だけを取り除く方法

    ランダムに0が混じっている数列がありまして、ここから0をのぞいたリストを作成したいのです。 例えば 22, 0, 14, 0, 0, 0, 64, 0, 0, 14, 0, 43, 0, 24, 0, 0, 53, 0, 0, 85 (要素の個数20) となっている時 22, 14, 64, 14, 43, 24, 53, 85 (要素の個数8) とするような感じです。ただし0でない数の中で同じ数字も出てきますので(上の例だと14が2回出てくる)単純に重複を取り除くような方法だと、本来取り除きたくないものまで取り除いてしまうのでダメなのです。 以上がやりたいことなのですが、どなたかうまい方法をご存知ないでしょうか?よろしくお願いします。

  • 【エクセル】左隣のセルが「2」となっているセルの数を数えたい。

    いつもお世話になってます。 エクセル2003について、以下の条件を満たす関数式を教えてください。 A列にa、b、c、d、eと5種類の1文字がランダムに入力されています。 B列に1、2、3と3種類の数字1つが同様に入力されています。 ・左右のセルの組み合わせが「a」「2」となっている数だけ数えたいのですがどのような式で計測すれば良いのでしょうか? ・言い方を変えると、右隣が「2」の「b」のセルの数を数えたいのです。 ・オートフィルターは使わないこととします。 たびたびすみません。よろしくお願いします。

  • Excel上でのデータ数字が連番であることを確認する方法を教えてくださ

    Excel上でのデータ数字が連番であることを確認する方法を教えてください。 ある列に数字5桁で、00001,00002・・・と数字が約30000件並んでいますが、 これが重複や漏れなく正しく連番が付与されることを確認したいと考えています。 目視で1件ずつ見る以外に、関数等を使って検証する方法は無いでしょうか? Excelは2003です。 どなたか良いアドバイスをお願いします。

  • EXCELで下記のような事は可能でしょうか。

    EXCELで対応していることで、現在苦労しているので、良い方法がありましたら教えていただけますと幸いです。 以下のようなデータを(連番ではないが、300グラまでの数字) 1 2 3 4 5 6 ・ ・ このようにマクロを組んで編集したい 上の1列に並んだ数字を8列の数字列にする 行は、8列にした場合に自動的に決定する A列から下に並べる 全体の数字の数を 考えて、8列にした場合の行を自動的に 設定して折り返す。 1 12 23 33 43 55 67 77 88 98 305 2 13 24 34 45 56 68 78 89 99 306 3 14 25 35 46 57 69 79 90 100 312