- 締切済み
Excelでの売り上げ処理
メーカーさんから課せられたノルマを分析するため、 売上日、ユーザーコード、仕入れ値、数量をAccessから Excelにクエリから吸わせ、そのユーザーコード(顧客番号) をLookupで別表から担当者、担当課を参照して空いた行 にその値をオートフィルで貼り込み、数量X仕入れ値の行を作り、 横に「担当者、担当課」縦に「売り上げ月」 データーとして「仕入れ値X数量」を入れ、 月別、担当者別の売り上げ集計を作る事を考えています できるだけ自動で更新できるようにしたいのですが 今のところ支障になっているのが Accessデーターが更新され、エクセルのクエリで 取り込んだ部分の更新をかけるとオートフィルで入れた 部分が空欄になってしまい、先に相当先まで空欄に オートフィルをかけておかなければならないこと、 日付データーが表示形式にかかわらず日で区切られて しまって、手でグループ化してやらないと行けない事です。 特に前者は無駄な処理が増えてしまって困っています。 なんとかできないものでしょうか。 Office2000-SP3です
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- TTak
- ベストアンサー率52% (206/389)
自動更新を考えておられるとのことですが、マクロを使うことになると思われます。なお、MSクエリ経由で外部データを取り込む作業も、マクロで記録できます。 オートフィルタですが、マクロのヒントとしてはデータを取り込む前にオートフィルタをいったん解除し、取り込んだ後にデータの最終行を判別して、その範囲に再度オートフィルタをかけるというコーディングになるのでは。 下記はその例です With ActiveSheet '2列目のデータがが何行目まであるかを判別して、 'thisbookRwに格納 thisbookRw = .Range(.Cells(.Rows.Count, 2) _ .End(xlUp).Address).Row If .AutoFilterMode = False Then 'オートフィルタがない場合 .Range("A2:E" & thisbookRw ).AutoFilter Else '古い範囲のオートフィルタがある場合 .Range("A:E").AutoFilter .Range("A2:E" & thisbookRw ).AutoFilter End If End With
- taknt
- ベストアンサー率19% (1556/7783)
アクセスだけで やれば 特に問題は ないと思いますが・・・。
補足
アクセスからダイレクトにピボットテーブルに落とせば 確かに諸般の問題は解決致しますが・・・ アクセスファイルはまた別のシステムから吐かれた物で フォーマットをいじる事は出来ません。 かつ、コードを担当者に変換しなければならないのです。
お礼
有り難うございます。 一応ボタンにマクロを割り当ててみたのですが もうちょっと勉強してみないとうまく使えなさそうです。 うまくいけば完全に自動処理が出来そうです。