パスワードを忘れた? アカウント作成
13647036 journal
日記

Technoboseの日記: EXCELで表引きする作業の正しい自動化は? 2

日記 by Technobose

 マスターデータを作成する作業の一部で、他のレコードの値を参照して計算したレコードを登録する必要がある。
 そのレコードは一件ごとに二万件ぐらいのマスターデータから、百件ぐらいの他のレコードの値を参照して加重平均をとるといったもの(件数は二十件くらい)。
 マスターデータ自体は汎用機に登録されているほか、汎用機に登録するための元データがAccess形式で作成されている。
 で、これをどういう訳か、職員がマスターデータを汎用機で検索して、伝来のExcel表に入力・計算しているわけですな。
 表引き作業を機械化するだけで、かなりの省力化できるんだけど、ここでどのような方法をとるのが最も確実・安全か。

 条件としては、まず参照する他のマスターデータのインテグリティを確実に保障する必要がある。
 次に動作が軽くて、わかりやすいこと。
 最後に作業終了後、機械化した痕跡を綺麗に消せること。

 ACCESSに記録されているマスターデータをExcelにコピーして、Excelの表引き関数を使うというのは、インテグリティの問題と動作の確実さの面から論外なので、VBAでMDBを読みに行くこととした(手作業主体になると検証作業が大変)。

 昨年度までは、Excelの汎用モジュールにDAOでMDBを検索する関数を作り、これを計算表に埋め込んだ。
 この方法は直感的でわかりやすいんだけど、表引きの件数が多いので同時に走るDAO処理が多くて動作が重い。
 それと計算するセル毎に関数を埋め込むので、後から痕跡を消すのに一手間が必要でよろしくないかも。
 
 いろいろ考えた結果、どうせ計算するセルは縦に並んでいるんだし、セルを一つ一つスキャンして値を検索、書き込むプログラムを書けば良いのでは、と思いついた。
 これなら計算結果の検証後、標準モジュールを解放すれば痕跡は消えてしまうし、やり直しが必要になってもモジュールを読み込めば対応できる。

 ・・・と思ってるんだけど、どうでしょうね。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2018年07月15日 21時03分 (#3443613)

    外からデータを取り出しにくい汎用機をリプレースするべきでは

    # 業務フローのボトルネック改善なくして継続性のある効率化なし

  • by Anonymous Coward on 2018年07月16日 5時48分 (#3443681)
    VBAが許されるのなら、Excel2016からPowerBIを使えるので前提条件が変わるかも?
typodupeerror

ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ

読み込み中...