• 締切済み

Excel 関数:連続した文字列の数の集計方法

Excelであるデータの統計を取っており、連続した文字列(○)の数を出して比較したいと考えております。 最終的に以下のようなデータが欲しいと思っております。 2連続:100回 3連続:80回 4連続:50回 (例)※ハイフンは空白のセルになります。 ○ ○ - ○ ○ ○ - ○ - ○ ○ - ○ - ○ ○ ○ - ○ ○ ○ ○ 上記の場合ですと、最終的に得たい情報は、 2連続:2回 3連続:2回 4連続:1回 5万行ほどあり、関数を用いてデータを集計したいと思っております。 どなたかご存知でしたら教えて頂けますでしょうか。 宜しくお願い致します。

みんなの回答

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

> 関数を用いてデータを集計したい 何でも数式だけでやりたがる人が多いですね。 ★連続として =SUM((FREQUENCY(ROW(A$1:A$50000),(A$1:A$50000<>"○")*ROW(A$1:A$50000))-1=★)*1) 計算を別セルに分けた方がいいと思います。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に元データがA2以下に並んでいて、E2以下に連続回数が入力されていて、F2以下にE列に入力されている連続回数に該当する例が何回あるのかという事を表示させるものとします。  又、C列を作業列として使用するものとします。  まず、C2セルに次の様な関数を入力して下さい。 =IF($A2="○",SUM($C1)+1+2000000*($A3<>$A2),"")  尚、上の式において何故2000000を加えているのかと言いますと、Excelでは行数が1048576行(Excel2007よりも前のバージョンでは65536行)までしかないため、どれ程連続していたとしても1048576回以上連続している事はあり得ず、1048576以上の数を加算しておけば、連続しているデータをカウントして行っている途中の数値であるのか、連続しているデータの中で最後の行の所の値なのかを区別出来るからです。  次に、C2セルをコピーしてC3以下に貼り付けて下さい。  次に、F2セルに次の様な関数を入力して下さい。 =COUNTIF($C:$C,$E2+2000000)  次に、F2セルをコピーしてF3以下に貼り付けて下さい。  以上で準備は完了で後はE列に表示したい連続回数を入力しますと、F列に該当箇所が何箇所あるのかが表示されます。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>5万行ほどあり、関数を用いてデータを集計したい では、B列に数えるための作業列を配置して集計するのが一番合理的な方法です。一発で計算しようとしても、エクセルがしばらくフリーズするのがオチです。 添付図: A1にタイトル行 A2以下に○ B1は空白 B2に =IF(A2="",0,IF(A2<>A3,-B1+1,B1-1)) 以下コピー D列に連続の数字 E2: =COUNTIF(B:B,D2) 以下コピーして完成。

aporon1216
質問者

お礼

お返事ありがとう御座います! 教えて頂きました方法で作業をしてみたいと思います!

関連するQ&A

  • エクセルで列ごとのセルを集計をする時の関数を教えてください。

    エクセルで列ごとのセルを集計をする(1-偶数行と奇数行.2-一行目、二行目、三行目、・・・、n行目)時の関数を教えてください。

  • Excel 特定の文字列が連続で続いたら非表示

    セル内の特定の文字列が2個以上連続してる場合、連続している文字列を非表示にしたい。 セルに横一列にデータを入力し、=C2&","&D2&","&E2&","& ,,,,, 横の列にはデータを","を入れて文字列を結合したセルを表示させます。 例 データの文字列が1 2 3 4 5と入力されていたら 1,2,3,4,5,,,, と表示され複数セルの入力された文字列が結合した形で表示されます。 これを 1,2,3,4,5 とカンマ","が2個以上連続したらデータの(この場合5)後ろの連続しているカンマを非表示にしたいです。 Excelは2016で、使用できる関数が限られています。 この場合、他の関数の組み合わせで1,2,3,4,5と連続するカンマを非表示にする方法はありますでしょうか。 Excelのシートは添付画像の通りです。 詳しい方いましたら、ご教授下さい。 よろしくお願い致します。

  • エクセルのマクロ(指定列の空白にひとつ上の文字を入力し続ける)

    エクセルのマクロを教えてください。 指定列の空白にひとつ上の文字を入力し続けるマクロです。 A列指定 A2からスタートし、1000行くらいあるデータ 空白があった場合ひとつ上の文字を入力 空白は、2行連続・3行連続となることもあるが大抵は1行空白 この場合、空白セルの上で一番近いデータをコピーする A列のデータは、文字・数字・日付と様々 1000行ある場合もあるが、それ以下の場合もあるので、10行空白が続いたらマクロが自動的に終了 エクセル2003使用 よろしくお願いいたします。

  • Excel関数で、長さ0の文字列(

    Excelで、両軸対数の散布図(X列,Y列)を作成していますが、X列,Y列ともに、データがない部分があります。 X,Yともに他のデータの関数になっており、 データが不適格の場合、空白セルを入力しています。 しかし、空白セルとして、("")を入力すると、 X,Yの散布図が、散布図にならず、困っています。 具体的には、 IF(Y>0, Log(Y),"") といった感じです。 恐らく、空白セルが長さ0の文字列("")と解釈されているからだと思います。 このセルをDeleteで削除すると、グラフはうまく表示されるようですが、それでは、関数が機能しません。 そこで、関数の出力で、完全な空白セルをセルの値にする方法を教えてください。

  • EXCELで連続した同じ値をグループと見なして数を数えるには?

    EXCELで連続した同じ値を1グループと見なしてグループ数を数える方法を探しています。つまり以下のようなデータがある時、A列中に何グループあるのかを関数で算出したいのです。 行   A 1   ○ 2   ○ 3   × 4 5   ○ 6   ○ 7   ○ 8   × 9   × 10   ○ 11   ○ 12   ○ 13   ○ 例中のA1~A13の範囲内では、A1~A2、A5~A7、A10~A13 を○のグループと見なして、グループ数は「3」ということになります。 このカウントをする関数式を1つのセルの中に作成して計算させたいのです。 ・ 列内には他に、×と空白があります。 ・ ○は必ず2つ以上連続しています。 ・ ○がいくつ連続してグループを作るかはわかりません。 ・ グループとグループの間に入る×と空白の数は不規則です。 これは職場で使っている管理表です。 当初、他列の各行にA列の前後の値から判断する式を入れて合計して求めていたのですが、パソコンスキルの低い不特定多数の人が使用するため、関連するセルに削除挿入されたりしてエラーが頻出し、集計している別シートの方にも影響を出しています。そのため、各行に計算式を入れる方法は避けたいのです。 お知恵をお貸しください。 よろしくお願いいたします。

  • エクセルのワークシート関数でA、B列不同数取得

    エクセルのワークシートA列とB列にデータがあります。 データは数値、文字列、空白です。エラー値はありません。 A列のセルと同じ行のB列のセルの値が同一でないA列データの個数(またばB列データの個数)を求めるワークシート関数はないでしょうか?(空白同士は同一とみなします。) C列などに作業列を作ってA、Bの比較をして求める方法はすぐに思いつきますが、作業列なしで求めたいのです。

  • エクセルの文字列検索でお知恵をお貸し下さい。

    エクセルのA1~A5セルに次のようなデータがあるとします。 1-01-0 1-01-1 2-01-11 10-111-0 100-1111-111 B1~B5セルに、これらのデータから以下のようなデータを検索・抽出する関数が分からずに困っています。 1-01 1-01 2-01 10-111 100-1111 つまり各セルの右側の"-"(ハイフン)より左にある、可変な全文字列をB列に抽出したいのです。 どうか宜しくお願いいたします。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • エクセルで文字列から個数にする集計方法を教えてください。

    エクセルで文字列から個数にする集計方法を教えてください。 シート1に下記のような洋服のサイズ、カラーがあります。 行   A列  B列 1    7号 ブラック 2    9号 ブラック 3    9号 ブラック 4    7号 ホワイト 5    7号 ホワイト 6    7号 ホワイト 7    9号 ホワイト 8    9号 ホワイト 9    9号 ホワイト 10   9号 ホワイト シート2へこのように個数にしてそれぞれ集計したいのですが、 行 A列    B列     C列 1       ブラック   ホワイト 2  7号      1        3 3  9号      2        4 どの関数が使えば良いでしょうか? できれば簡単な関数で教えてください。 どうかよろしくお願いいたします。

  • エクセルVBA 文字列複数行・列連続連結

    エクセルVBA 文字列複数行・列連続連結でお教え下さい A列に基本文字(縦順) B列~F列に複数行データー(文字・時間) 文字結合時に改行 例 A2&B2&改行&A3&C2&改行&A4&D2&改行・・・・・ 次のデーター行 A&B3&改行&A3&C3&改行&A4&D3&改行・・・・・ データーの最終行まで連続で このような複数行あるデーターの連続文字列連結をしたいのですが・・・ 文字列連結後は 1.指定セルに貼り付け 2.クリップボードに貼り付け 3.テキストファイルに保存 よろしくお願い致します

専門家に質問してみよう