• ベストアンサー

エクセル 項目ごとの組み合わせを別シートに表示させる

エクセル2003を使用しています。 以前こちらで質問させていただいた以下の質問のNo.5の方の回答を 元に、作業用セルを使用してできるかと思いましたが、どうもうまく いかなかったのでよろしくお願いいたします。 http://oshiete1.goo.ne.jp/qa5421320.html やりたいことは、以下のようなデータがあり、それを別シートに 項目ごとに名前だけ重複しない形で移したいのです。 店舗 商品 単価 A店 野菜 100 A店 野菜 150 A店 果物 200 B店 菓子 100 B店 菓子 150 B店 野菜 100 これを、↓ A店 野菜 A店 果物 B店 菓子 B店 野菜 このように、商品を店舗毎に一まとめにして表示し、 店舗-商品の全ての組み合わせを網羅して別シートに表示したいと 思っています。 よろしくお願いいたします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

このような集計ならピボットテーブルが最も適しています。 集計するのではなく項目だけ表示したい場合もピボットテーブルで集計し、集計列を非表示にするのが簡単です。 数式で対応するなら、複雑な数式が必要となりますが、以下のような関数を入力し、右方向に1つ下方向に適当数オートフィルすることになります(提示した式は項目名を含めて、同じシートに表示する数式になっています)。 =INDEX(A:A,SMALL(INDEX((MATCH($A$1:$A$100&$B1:$B100,$A$1:$A$100&$B1:$B100,0)<>ROW($A$1:$A$100))*10000+ROW($A$1:$A$100),),ROW(A1)))&""

areddin711
質問者

補足

ありがとうございます。 ピボットテーブルでも可能ですね。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばシート1のA,B,C列にお示しのデータが2行から下方に入力されているとします。 作業列としてE2セルには次の式を入力します。 =A2&B2 F2セルには次の式を入力します。 =IF(E2="","",IF(COUNTIF(E$2:E2,E2)=1,MAX(F$1:F1)+1,"")) E2セルとF2セルを選択してそれらの式を下方にオートフィルドラッグします。 そこで答えを表示するシートのA2セルには次の式を入力してB2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$F:$F,ROW(A1))=0,"",INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1))) 店舗ごとにまとめて表示したいのでしたらシート1においてA列を重点に並べ替えを行っておくことが必要です。

areddin711
質問者

お礼

ありがとうございます。やってみたらうまくいきました。

関連するQ&A