• 締切済み

Excelでの売り上げ処理

メーカーさんから課せられたノルマを分析するため、 売上日、ユーザーコード、仕入れ値、数量をAccessから Excelにクエリから吸わせ、そのユーザーコード(顧客番号) をLookupで別表から担当者、担当課を参照して空いた行 にその値をオートフィルで貼り込み、数量X仕入れ値の行を作り、 横に「担当者、担当課」縦に「売り上げ月」 データーとして「仕入れ値X数量」を入れ、 月別、担当者別の売り上げ集計を作る事を考えています できるだけ自動で更新できるようにしたいのですが 今のところ支障になっているのが Accessデーターが更新され、エクセルのクエリで 取り込んだ部分の更新をかけるとオートフィルで入れた 部分が空欄になってしまい、先に相当先まで空欄に オートフィルをかけておかなければならないこと、 日付データーが表示形式にかかわらず日で区切られて しまって、手でグループ化してやらないと行けない事です。 特に前者は無駄な処理が増えてしまって困っています。 なんとかできないものでしょうか。 Office2000-SP3です

みんなの回答

  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

自動更新を考えておられるとのことですが、マクロを使うことになると思われます。なお、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

pent
質問者

お礼

有り難うございます。 一応ボタンにマクロを割り当ててみたのですが もうちょっと勉強してみないとうまく使えなさそうです。 うまくいけば完全に自動処理が出来そうです。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

アクセスだけで やれば 特に問題は ないと思いますが・・・。

pent
質問者

補足

アクセスからダイレクトにピボットテーブルに落とせば 確かに諸般の問題は解決致しますが・・・ アクセスファイルはまた別のシステムから吐かれた物で フォーマットをいじる事は出来ません。 かつ、コードを担当者に変換しなければならないのです。