• ベストアンサー

エクセル:ランダムパターンをそれぞれ集計する方法

下記のように、「あいうえ・・・」行それぞれに、「0」と「1」がランダムで続いています。 ただし、「い(0110000)」と「え(0110000)」のように、たまにまったく同じパターンもあります。 そういった組み合わせが複数あると予想されます。 同じ組み合わせがある場合、それを見つけてその組み合わせが、それぞれいくつあるかを集計したいのですが、どのように計算すればよろしいでしょうか?  エクセル初心者のため、いろいろ勉強しているところですが、参考書などを探してもこういう集計方法(ランダムパターンの中から同じものを見つけ、それがいくつあるかを計測する)を見つけられませんでした。詳しいかたどうかご指導のほどよろしくお願いいたします。  A B C D E F G ・・・・・・M あ0 0 1 0 0 1 0 ・・・・・・1 い0 1 1 0 0 0 0 ・・・・・・0 う0 0 0 1 0 1 0 ・・・・・・1 え0 1 1 0 0 0 0 ・・・・・・0 お0 1 1 1 0 1 0 ・・・・・・1 ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・

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

  • ベストアンサー
noname#204879
noname#204879
回答No.3

簡単のために、Fig-1 のようなデータを考えます。 セル F2 には式 =B2&C2&D2&E2 を入力して、此れを下方にズズーッとドラッグ&ペーストしています。 Fig-1    A   B   C   D   E   F 1  ITEM JDG1 JDG2 JDG3 JDG4 DAT 2  か    0   0   1   1 0011 3  き    0   1   1   0 0110 4  く    1   1   0   1 1101 5  け    0   1   1   1 0111 6  こ    1   1   0   1 1101 7  さ    1   1   0   1 1101 8  し    0   0   1   0 0010 9  す    0   0   1   0 0010 10 せ    1   0   1   1 1011 11 そ    0   0   0   1 0001 12 た    1   1   0   1 1101 13 ち    1   1   0   1 1101 14 つ    1   0   1   0 1010 15 て    1   0   1   0 1010 16 と    1   1   1   0 1110 1.範囲 A1:F16 を指定して、[データ]→[ピボットテーブルとピボッ   トグラフレポート]→[次へ]→[次へ]を実行 2.“新規ワークシート”あるいは“既存のワークシート”の何れかに   目玉を入れて[完了]をクリック     →ピボットテーブル(以降、ピボテ)のフォーマットが表示 3.「行フィールド」枠内に「DAT」をドラッグ&ドロップ 4.「行フィールド」枠内の右側に「ITEM」をドラッグ&ドロップ 5.「データアイテム」枠内に「DAT」をドラッグ&ドロップ 6.ピボテの[DATA]のセルを右クリックして[フィールドの設定]を選択 7.“なし”に目玉を入れて[OK]をクリック すると、Fig-2 が得られます。 Fig-2 データの個数/DAT DAT      ▼ ITEM▼ 合計 0001       つ     1 0010       と     1 0011       く     1          き     1 0110       す     1 1000       か     1 1001       ち     1          そ     1 1100       け     1 1110       た     1          こ     1 1101       て     1          さ     1          し     1 1111       せ     1 総計            15 Fig-2 において、0011、1001、1110、1101 と表示されているセルをダブルクリックすると Fig-3 に変化します。 Fig-3 データの個数/DAT DAT      ▼ ITEM▼ 合計 0001       つ     1 0010       と     1 0011             2 0110       す     1 1000       か     1 1001             2 1100       け     1 1110             2 1101             3 1111       せ     1 総計            15

guard9
質問者

お礼

mike_gさま、丁寧なご説明、ありがとうございます!!!!! 完璧にできました。正直これほど簡単にできるとは思っていなかったので、感激しています。ありがとうございました。

その他の回答 (2)

  • CMLT
  • ベストアンサー率40% (143/357)
回答No.2

ただ単純に2つ行を比較するだけならいくらでも方法がありますが集計をとるなら行全体を2進数と捉えてN列に10進数として出してあげるのはいかがでしょうか? たとえばあ行の上に0行があったとして、  A B C D E F G ・・・・・・M N 01 2 4 8 16 32 64 ・・・・・・ あ0 0 1 0 0 1 0 ・・・・・・1 として(あ,N)に数式 =sumproduct($0A:$0M,あA:あM) としてあとは下へコピーしていきます。行番号や列番号の前に$を付けるとコピーしても固定されたまま変わりません。 あとはN列をcountif関数などでいかようにも料理できるでしょう。

guard9
質問者

お礼

CMLTさま お教えいただきありがとうございます。 このような考え方もあるのですね。以後、参考にさせていただきます。

  • SePapa
  • ベストアンサー率50% (47/94)
回答No.1

こんにちは 方法はいろいろありますが、その一例として 回答します。 考え方としては、まずは全文字(1とか0)を連結した文字を作成し、 その文字をピポットテーブルの機能で集計します。 手順 1)N列に以下のような数式をいれて A列からM列の文字列を連結します。 =A1 & B1 & C1 & ・・・・ & M1 これを全行のN列にコピーします。 2)その後で1行目に空白行を1行いれ、 N1のセルに適当なタイトルを入力します。 (”データ”とか) 3)N行のみを選択した状態で ピポットテーブルを起動します。 (Excel2007であれば挿入タブ内にボタンがあります。 2003であればツールメニューの”ピポットテーブルとグラフレポート”を選択します) 4)ピポットテーブル作成画面で何も変更せずに OK(Excel2003であれば完了)ボタンを押します。 5)表示された一覧にてフィールドリストの「データ」を 行と値の両方のフィールドにドラッグしてください。 以上で同じ文字列の数が簡単に表示できます。 一度お試しください。

guard9
質問者

お礼

SePapaさま お教えいただき感謝申し上げます。 この方法でも、したかった計算ができました。ピポットテーブルってすごいですね。ありがとうございました。

関連するQ&A