Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


55031 / 76738 ←次へ | 前へ→

【26487】Re:効率的なコードにするには…。
発言  かみちゃん E-MAIL  - 05/7/6(水) 22:53 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>やはり、具体的な例がなければご教授をいただくのは難しいですよね。
>サンプルのフォーマットをもう一度考え直してから質問させていただきます。

今までのサンプルデータを再度整理してみました。


【db.xls】
   A    B    C   D
1 得意先 営業部門 商品 受注総額
2 AAA    京都   ○     100
3 AAA    京都   ■     200
4 AAA    京都   △     300
5 AAA    大阪   ○     400
6 AAA    大阪   ■     500
7 AAA    大阪   △     500
8 AAA    神戸   ○     400
9 AAA    神戸   ■     300
10 AAA    神戸   △     200
11 BBB    京都   ○     100
12 BBB    京都   ■     600
13 BBB    京都   △     700
14 BBB    大阪   ○     800
15 BBB    大阪   ■     900

【db.xls】ピボットテーブル集計
   A        B   C    D   E   F   G
1
2
3 合計 / 受注総額 得意先 営業部門
4          AAA           BBB     総計
5 商品       京都  神戸   大阪 京都 大阪
6 ■           200   300    500  600  900  2500
7 △           300   200    500  700     1700
8 ○           100   400    400  100  800  1800
9 総計       600   900   1400 1400 1700  6000

【d.xls】得意先AAA
  A    B  C   D  E
     京都 大阪 神戸 合計
1 ○   100  400  400  900
2 ■   200  500  300 1000
3 △   300  500  200 1000
4 合計  600 1400  900 2900

【制約条件】
1.d.xlsにある項目が、db.xlsにないものもある。
2.db.xlsの、ピボットテーブルで集計した複数の値を、d.xlsの1つのレンジに反映させなくてはい
 けない部分がある。(例えば、db.xlsでは「商品○」は、「○A」と「○B」の二つがあるのでピ
 ボットテーブル集計では当然「○A」「○B」の項目がでてくるけど、d.xls上では、○として○A,
 ○Bの合計を入力しなくてはいけない。)

以上のことを整理してさらに疑問が出てきました。
1.d.xlsは、得意先別にシートがわかれているのでしょうか?
2.db.xlsのレコードは、得意先、営業部門、集計した商品で重複しているのでしょうか?
 この例では、重複していないことになります。
3.重複していないのであれば、d.xlsはピボットテーブルから参照するのではなく、VLOOKUP関数を
 使った参照をすることもできます。d.xlsに直接、数式を設定することができないならば、db.xls
 の別シートにd.xlsと同様のフォーマットを用意して、そこで、数式による参照をさせ、結果を
 d.xlsの対象範囲に値貼り付けすることができます。
4.重複しているのであれば、やはりピボットテーブルによる集計を行ない、その集計結果のシート
 をd.xlsからVBAで参照する形になります。
 この参照の考え方ですが、d.xlsのB1は、「京都」の商品「○」ですが、db.xlsのピボットテーブル
 集計のA列から「○」を探し、行番号を取得します。次に5行目から「京都」でかつ得意先が
 「AAA」を探し、列番号を取得します。行番号と列番号が交差したところが値となります。
 もっとも、決まったフォーマットでないならば、こんなややこしいことをしなくてもすむのです
 が、とりあえず、一番複雑な方法で、コードを用意しています。

一度、ご検討ください。

0 hits

【26368】効率的なコードにするには…。 あさみ 05/7/2(土) 23:54 質問
【26370】Re:効率的なコードにするには…。 かみちゃん 05/7/3(日) 11:30 発言
【26371】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 12:14 お礼
【26373】Re:効率的なコードにするには…。 かみちゃん 05/7/3(日) 14:36 発言
【26375】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 20:32 お礼
【26380】Re:効率的なコードにするには…。 あさみ 05/7/4(月) 1:00 質問
【26387】Re:効率的なコードにするには…。 かみちゃん 05/7/4(月) 12:52 発言
【26416】Re:効率的なコードにするには…。 あさみ 05/7/5(火) 2:05 発言
【26417】Re:効率的なコードにするには…。 かみちゃん 05/7/5(火) 6:39 発言
【26465】Re:効率的なコードにするには…。 あさみ 05/7/6(水) 7:16 発言
【26487】Re:効率的なコードにするには…。 かみちゃん 05/7/6(水) 22:53 発言
【26372】Re:効率的なコードにするには…。 Hirofumi 05/7/3(日) 14:01 回答
【26374】Re:効率的なコードにするには…。 Hirofumi 05/7/3(日) 17:59 回答
【26376】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 20:34 お礼
【26377】Re:効率的なコードにするには…。 Hirofumi 05/7/3(日) 20:54 回答
【26379】Re:効率的なコードにするには…。 あさみ 05/7/3(日) 22:19 お礼

55031 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free