- 締切済み
エクセルVBAに関して教えてください。初心者です。
作業日4 内容 2012/11/12 DS棚357×412 B 9 2012/11/12 DS棚357×775 B 126 2012/11/12 DS棚357×867 B 9 2012/11/13 2012/11/13 2012/11/14 2012/12/14 上記のデータから別シートに取得しますが、 結果は下記の表のようにしたいです。 内容 2012/11/12 2012/11/13 2012/11/14 DS棚357×412 B 9 5 5 DS棚357×775 B 12 2 2 DS棚357×867 B 25 6 1 重複した作業日はないように横方向にしたいです。 内容も重複しないように並べたいです。 回答していただく方は、お手数ですが、プログラムの意味も書いていただければ幸いです。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
VBAプログラミングするまでもなく、ピボットテーブル機能ですみそうな感じですね。 こんな感じで使うと、求めている形式で表示できます。 ピボットテーブル・ボタンをリボンからクリック(標準設定でリボンにない場合は、ファイルメニューからオプションを選んでユーザータブに追加しておいて使います)。 元の表をデータ抽出範囲指定。 取り込み先のワークシートのセルを指定。 ピボットテーブルのフィールドリスト指定ウィンドウが開くので、適宜指定。レポートに追加するフィールドとして、内容、作業日、個数といった項目タイトルのチェックボックスをチェック。列ラベルに作業日をドラグ&ドロップ(最初は、フィールドリスト指定ウィンドウの下部に、内容と作業日が行ラベルに入っているので、行ラベルから列ラベルへ作業日だけドラグ&ドロップ)。 ピボットテーブル機能は、エクセル使用歴が長い人でも全然使ったことがない場合も少なくないので、使い方はヘルプなり市販のExcel解説書なりで確認してください。 VBAプログラミングしたい場合は、こんな感じ。 内容列をソートして、重複しない一意なデータを取得して、内容列にデータを書き込む。作業日列をソートして、重複しない一意なデータを取得して、作業日行にデータを書き込む。内容データと作業日データの組に合致する個数データをもとの表から検索して、ワークシートへ書き込むことを組み合わせ数ぶん繰り返す。 もとの表から内容データと作業日データの組に合致するデータを取得する方法には、いろいろあるでしょうが、もとの表をデータソースとしてデータベース接続してクエリ抽出するのがカンタンに思います。 プログラミングとテストの手間、別表に対する似たようなプログラミング作成注文のたびに振り回される煩雑さを考えると、ピボットテーブルで処理するのがカンタンで、こういう機能があるから使ってみろとアドバイスするだけで済みます。