エクセルのネタ

滅多に書かないし
趣味程度のVBAで仕事すると、以後訂正とか変更入ると面倒なので出来るだけ関数での作成を心がけています

がしかし
人的コスト削減の為に、ファイルを放りこむだけで仕事を終わらせる為には。。。
無理かな。。。やっぱVBAで書くかな。。。
と思ってた矢先に出来ちゃったので覚書

外部の調査会社から日々のデータが送られてきます。
エクセル形式だけど、このファイルが保護されていて編集出来ません。
各店舗ごとに商品別の数値が入力されており、日毎の元データとして使用します。
この表を元にグループごとに分けて集計する月毎の表が別にあるわけです。
この時点で2個ファイル

現状は、マクロを使ったファイルを用意
それぞれのタイプが入力されたシートへ貼り付け
タイプごとに集計が出てるので、更にまた貼り付けとなっています。

この作業自体はマクロを使っているので、タイプの設定さえ間違っていなければ短時間で済みます。
が、これも数分を要するわけで
元になるデータがあるなら、そこから読み込めば良いではないか
という事です。

元シート > タイプ設定シート > 集計シート
元シートに直接タイプ名を入力すればかんたんな話です
けど保護されてて編集できない
なので、別シートを用意して商品名に対応するタイプ名を入力するわけです。
※商品は増えます。
※各店舗の元シートの商品名は重複しません。
※各店舗の元シートとタイプ設定シートの商品の並びはバラバラです。

タイプ名から複数の商品名を取得
その複数の商品名を検索して、元シートにあれば加算って具合でしょうか

出来ちゃったのは、配列に入れたSUMIFをSUMするって感じ
なかなかレアなケースだと思うので、ダウンロードしてみて下さい。
もしかしたら探していた解決策かもしれませんょ
SUMIFをSUM

VLOOKUPで複数検索したいけど
DSUMで検索値に配列を入れたいけど
じゃなくて総ナメ的な、とてつもなく長い数式になるしかないのかな。。。

=SUM(SUMIF(
で検索したら、いくつかヒットしますわ
なかなか、やりたい事を検索で見つけるのって難しい時ありますな。。。
SUMIFの時点で配列に目的の数値が入っていたからSUMしたのですが
うまく合計出たので良しとしましょう


もっと簡単な方法があるも知れないし
これが「最適な手法」なのか分かりませんけどネw
複数の店舗が絡んでいるので、全ての店舗に同じ商品があるとは限りませんが
集計上ある程度同じタイプでまとめているわけです。

ときおり商品が増えるので、タイプ名シートに入力する手間は省けないけど
あとは。。。
ファイル名から日付を判別させれば、集計シートには自動で入るハズ。。。

基本Office2000です~
[ad#co-2]