• ベストアンサー

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

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

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

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

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

zakka5128
質問者

お礼

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

その他の回答 (4)

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

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

zakka5128
質問者

お礼

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

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

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

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.3

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

zakka5128
質問者

お礼

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

noname#204879
noname#204879
回答No.2

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

zakka5128
質問者

お礼

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

関連するQ&A

  • エクセルで複数列、複数行の数字を1列に整列したい

    エクセルで複数列の数字を1行に整列したい 100列、150行の数値が並んでいます。 これを1列に並べ替えたいと思っています。 具体的には下記の通りです。 例: 1.○○ ●● ・・・・・・・(100列) 2.□□ ■■ ・・・・・・・(100列) 3.▽▽ ◎◎ ・・・・・・・(100列)      ・      ・      ・      下記のように変換したいのです。 1. ○○ ●● ・ ・ ・ ・ ・ □□ ■■ ・ ・ ・ ・ ・ ▽▽ ◎◎ 過去ログも参照したのですが過去の応用が効かずなかなか上手く いきません。  よろしくお願い致します

  • エクセルで複数列の数字を1行に整列したい

    エクセルで複数列の数字を1行に整列したい 24列、365行の数値が並んでいます。 これを1行8760列に並べ替えたいと思っています。 25列目から2行目の24列分を移動。49列目からに3行目の24列分・・・ といった具合で、具体的には下記の通りです。 例: 1.○○ ●● ・・・・・・・(24列) 2.□□ ■■ ・・・・・・・(24列) 3.▽▽ ◎◎ ・・・・・・・(24列)      ・      ・      ・      下記のように変換したいのです。(1行で8760列に) 1.○○ ●● ・・・・・□□ ■■ ・・・・・▽▽ ◎◎・・・・・ 過去ログも参照したのですが過去の応用が効かずなかなか上手く いきません。  よろしくお願い致します。

  • エクセルで質問です。

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

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

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

  • エクセルで複数列に共通した項目の抽出方法

    エクセルで複数列で重複したセルを抽出する方法がわかりません。 具体的には、ABC各列にランダムな6桁の数字がそれぞれ500行づつあり、AとB列で重複(同じ)数字があれば、D列に列挙(重複した個数ではなく、たとえば310257などと重複していた数字)し、またABCの3列ともに重複している数字をE列に列挙するなど、複数列で重複したセルを抽出するにはどういう方法があるんでしょうか?

  • エクセル/数をひろう。

    過去の質問から探しているのですが、なかなか見つからずとりあえず質問させてもらうこととしました。 <エクセル> A列に あか きいろ あか きいろ と入力。 B列に 1 5 3 5 と諸々の数値が入っています。 そこでB列の最下段にA列が あか のとき、B列に数字がはいっているセルの数、を表示したいのです。 この場合だと答えは2件 になります。 回答いただくか、過去に同様のものがあればそのペイジを教えていただければ幸いです。 説明不足であればその旨書き込みください。 よろしくお願いします。

  • エクセル関数の詳しい方ご教示ください。

    エクセルの詳しい方、ご教示ください。 A B C D E F G(表示したい列) 1行目 2 3 5 7 9 2 =知りたい関数 2行目  4 5 8 9 1 2 上記のようなランダムな数値データがあり、 ・Aの列に表示している数字の数だけ、 ・Bから右の列に移動した数字を、 ・Gの列に表示したい と、思っています。 例で考えると、 G1のセルは7 G2のセルは2 と表示されるイメージです。 Gにはどのような関数を使えばよいでしょうか?

  • 列の集計関数を教えて

    エクセルの列に1から9までの数字がランダムにあります 1から9までのそれぞれの集計数を出す関数を教えて/よろしく

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

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

  • エクセルの検索・関数

    お分かりの方、教えて下さい!! エクセルにて、 A列に13桁の数字がランダムにあり、 C列にも13桁の数字がランダムにあり、 E列には1桁~3桁の数字がランダムにあります。 B列に同じ行のA列の13桁と一致するC列の13桁を見つけ、 そのC列のと同じ行のE列の数字を入れたいのです。 上記の内容が出来る関数を教えて下さい。 分かりにくくてすみませんが、よろしくお願いいたします。

専門家に質問してみよう