- ベストアンサー
エクセルで関数を使い注文品別の一覧表を作るには?
まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、ご教授お願いします。 VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です)エクセル上級者の皆様、宜しくお願い致します。(アクセスがないのでエクセルでお願いします)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 考えてみましたが、うまくいきません。 そうでしょうねぇ(笑)。 とりあえず先に言っておくと、かなり困難な仕事と言えます。 一覧(リスト)があって、集計するのがデータベースの考え方であり、 お望みの処理はその真逆の考え方だから、なんです。 「アクセス」というソフトの名前が出てきている割には 一覧表と集計表の関係をよく理解できていないようにお見受けします。 アクセスでも「テーブル」から作成しますよね。 それを「クエリ」などを使って集計表に落とし込むわけです。 クエリを作ってからテーブルのレイアウトを作る人もいないでしょう。 表計算でも同様に、集計表から先に作ると応用が利かないため、 まず一覧を作り、集計表のレイアウトを考えるのがセオリーなんです。 添付した図のように、「注文リスト」という一覧があって、 これを基に「店別」「品別」の集計表を組むのであれば ピボットテーブルを使ってやれば造作もない作業です。 お望みの処理はこの真逆ですので、それなりの手間がかかるわけですね。 さて、ここでこちらから質問です。 仰る > 注文品別の発注者がわかる一覧表 は、どんなモノをイメージしていらっしゃるのでしょうか? ※ここでも、注文品「別」なのに「一覧」という矛盾が生じています。 例えば現状で、添付図左上の「店別」のイメージのような表があるとして、 添付図右上の「商品別」に直したいだけなのであれば 単純に元の表をコピーしたうえで、 新規シートでも作成して「行列を入れ替えて貼り付け」してやるだけです。 正直なところ、お望みの「一覧表」のレイアウトが伝わってこないので これ以上のアドバイスが出来ないのが現状です。 ※「店別集計」から「注文リスト」に戻す関数自慢は私はしません。 理解できない式(関数)は使うべきではない。 後で応用・改造ができなくなるのが目に見えているから。 という考えの下です。 まぁ、後のことを考えるのであれば、 「注文リスト」を頑張って作成しなおすのが一番と思いますよ。 どんな集計表にでも加工できますから。
その他の回答 (1)
- bunjii
- ベストアンサー率43% (3589/8249)
>まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 表の形に矛盾があります。 1行目(A1~J1)に商品名が記載されたものとすればA列(A1~A80)まで発注者の氏名を入力できません。 1行目のA1を除いたB1~K1へ商品名であれば矛盾しません。 但し、A列はA2~A81へ発注者の氏名にしなければなりません。 >この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、 既に「注文品別の発注者」の一覧表ができているように思えますがどのような表を作成したいのか規模を小さくした模擬データを提示してください。 商品毎に表を作成し、発注者毎の数量を拾い出すのでしょうか? つまり、商品毎のSheetを作成するとして、A1セルへ商品名を入力し、B列は受注数、A2セル以下に発注者氏名を列記する方法と言うことです。 このとき該当商品(A1セルの商品名)を発注した人のみをA列へ順に抽出するには幾つかの関数を組み合わせた数式が必要です。 具体的な模擬データ(元の表と結果の表)を提示して頂ければ数式を提示できると思います。 >VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です) VLOOKUP関数だけではできません。 INDEX関数、LARGE関数またはSMALL関数、ROW関数、COUNTIF関数、IF関数等を組み合わせた数式で抽出します。 具体的な数式は模擬データを提示して頂いてからとさせて頂きます。
お礼
ありがとうございました。 イメージしたものを画像で添付したいのですが、貼り付けの仕方がわかりません。申し訳ありませんが、添付方法をご教示願います。
補足
補足で画像の追加ができそうにないので、再度新規で画像添付で質問し直します。 宜しくお願い致します。