- 締切済み
エクセルのデータ集計方法で相談があります。
エクセルのデータ集計方法で相談があります。 A列とB列に以下のようなデータがあります。 A B 1 a 1 b 2 a 2 c 2 d 2 e 3 a 3 c 3 d 4 b この2列のデータを組合せを考え、以下のような形で集計したいと考えています。(1とaの組合せがあれば○、組合せがなければ×のような形) データ量が膨大で何か良い策(関数の組合せとか?)あればと思い、相談させて頂きました。 何卒よろしくお願いします。 (結果例) a b c d 1 ○ ○ × × 2 ○ × ○ ○ 3 ○ × ○ ○ 4 × ○ × × 以上です。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 ↓の画像で説明させていただきます。 Sheet1のデータをSheet2に表示させるようにしてみました。 余計なお世話かもしれませんが、A列・B列のデータも表示できるようにしていますので、 Sheet1に作業用の列を3列使わせてもらっています。 Sheet1の作業列C2セルに =A2&B2 そして、D2セルに =IF(COUNTIF(A$2:A2,A2)=1,ROW(),"") という数式を入れ、となりのE2セルまでオートフィルでコピーします。 C2~E2セルを範囲指定し、E2セルのフィルハンドルの(+)マークでダブルクリック、 またはオートフィルで下へずぃ~~~!っとコピーします。 Sheet2のA2セルに =IF(COUNT(Sheet1!$D:$D)<ROW(A1),"",INDEX(Sheet1!$A:$A,SMALL(Sheet1!$D:$D,ROW(A1)))) という数式を入れ、オートフィルで下へコピー B1セルに =IF(COUNT(Sheet1!$E:$E)<COLUMN(A1),"",INDEX(Sheet1!$B:$B,SMALL(Sheet1!$E:$E,COLUMN(A1)))) という数式を入れ、列(右)方向へコピーします。 これでA列・B列のデータが表示されますので 最後にB2セルに =IF(OR($A2="",B$1=""),"",IF(COUNTIF(Sheet1!$C:$C,$A2&B$1),"○","×")) という数式を入れ列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 以上、長々と書きましたが 参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1に元のデータがあるとしてシート2では応用を考えてA列にA1セルから下方に1,2,3・・・と入力し、1行目にはB1セルにa,C1セルにb・・・のように入力されているとします。 シート2のB1セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(B$1="",$A2=""),"",IF(SUMPRODUCT((Sheet1!$A$1:$A$100=$A2)*(Sheet1!$B$1:$B$100=B$1))>0,"○","×"))
- keithin
- ベストアンサー率66% (5278/7941)
>データ量が膨大で何か良い策 どのくらい沢山あるお話しをなさっているのかによりますが,本当に沢山あるのでしたらSUMPRODUCTや配列数式は良くない方法になります。 確実で簡単なやり方: >A列とB列に以下のようなデータがあります。 C列にもう一列追加して A列 B列 C列 1 a =A1&"_"&B1 1 b 1_b 2 a 2_a : : : のようにデータを一つにまとめ, a b 1 =IF(COUNTIF(Sheet1!C:C,A2&"_"&B1),"○","×") 2 のように普通にCOUNTIFで調べます。 最もお奨めの簡単な方法: A1に「種別」「B1」に「項目」とでも追記します。 今のAB列を元に,データメニューのピボットテーブルレポートを開始します。 行に「種別」,列に「項目」,データに「項目」をそれぞれ放り込んでやると,即座に組み合わせの個数集計が得られます。 実際に手を動かしてみて,結果を見てから必要なら補足ご質問等を投稿してみてください。