
社内SEにとって、マスタデータの流し込みは一種の「魔法」です。しかし社内SEの「全能感」と「絶望」は隣り合わせだったりします。
何千、何万というデータを、Excel一枚で一瞬にして書き換える。インポートボタンを押した直後の「完了」メッセージには、他では味わえない全能感があります。
しかし、その魔法は時として、呪いに変わります。EXCELの中身を確認しないで、システムに一括登録をしたりすると、あとは地獄に早変わりなんてこともよくあります。
今回は、社内SEがEXCELの中身をさぼってしまったゆえに起きた悲劇のシステムメンテナンスにまつわる「絶望と悟り」の記録をお届けします。
DB直接操作は禁止!社内SEに残された唯一の武器「Excelインポート」の光と影
外部のシステム会社が提供するパッケージ製品のメインシステムは、セキュリティとデータの整合性を守るため、データベース(DB)を直接操作することは許されません。
マスタを更新したければ、システム指定のExcelテンプレートにデータを整え、吸い込ませる。これが唯一の道です。「SQLで一括更新できれば一瞬なのに……」という不満を飲み込み、私は今日もExcel職人として「インポート用データ」を作り上げていました。
【悲報】「商品名が変です」の一言で凍りつく。Excel自動変換が招いたマスタ汚染の惨状
数時間の格闘の末、全件のインポートが完了。「これで今夜は定時退社だ」と勝利を確信したその時、内線電話が鳴り響きました。

商品名がおかしいことになっているんだけど…

あ、すぐに確認しますね~(まずい、絶対さっきのExcelだ。)
その言葉を聞いた瞬間、背筋が凍りつきました。経験上、知っています。「1行目が変」ということは、2行目も、1,000行目も、同様に「Excelの親切心(お節介)」によって汚染されていることを。
そして、マスタデータの一括修正は良いデータも悪いデータも関係なく、一瞬で書き換えてしまいます。
犯人は「Excelの親切心」。1月2日現象・0落ち・#N/A…、インポート前に潜む3つの地獄
「すぐ確認します!」と電話を切り、震える右手で元のExcelファイルを開くと、そこには「Excelあるある」の地獄絵図が広がっていました。
- 自動変換の罠: 商品コードの「1-2」が、勝手に「1月2日」の「Excelの自動書式変換(日付変換)」で日付形式に。
- 0落ちの悲劇: 先頭の「0」が消え去り、「文字列書式の解除による数値化(先頭の0消え)」で数値扱いになったIDの桁数が不足。
- 数式の残骸: VLOOKUPの結果がエラーを吐き、無機質な『#N/A』が整列。
魔法(一括更新)が使えない!仕様書の注釈に隠された「手動修正数千件」の宣告
「いいだろう、Excelを修正して再インポートだ!」と意気込んだ私を、さらなる絶望が襲います。
システムの仕様書をよく見ると、非情な一文が。
『※注:〇〇フラグおよび備考欄は、Excelによる一括更新に対応していません。画面より個別に修正してください。』
インポートできない? つまり、魔法はもう使えない。
実はこれ、システム側の「防衛本能」でもあります。特定のフラグや項目は、プログラムの分岐条件に直結しており、安易に書き換わるとシステム全体がバグで火を噴くリスクがあるのです。整合性を守るための「あえての手動」……。
その合理性は理解できても、目の前の数千件という現実を前に、私の心はポッキリと折れました。
元社内SE Tips
「なぜシステムは『一括更新』を拒むのか? 整合性を守るための防衛策」
- 理由: マスタの中身の一部には誤って登録されるとプログラムがバグを起こしたりします。そのためマスタを手修正でしか受け付けていない場合があります。
【再発防止】深夜残業を回避せよ!社内SEが血を吐いて学んだ「データ登録」3つの鉄則
ようやく数千件の手作業が終わったとき、私の右手はマウスの形に固まっていました。今回の血を吐くような教訓を共有します。
インポート前には、全セルを選択して書式設定を「文字列」に叩き直すこと、または、CSVではなくExcelの外部データ取り込み機能で列ごとに型指定する、これがExcelの自動変換を防ぐ唯一の自衛策です。
- 「商品名が変」と言われたら、オートフィルタで全項目をチェックせよ
- エラー値(#VALUE!や#N/A)が紛れていないか、目視確認は必須です。
- インポート非対応項目がないか、仕様書を穴が開くほど読め
手動修正が必要な範囲を事前に知ることで、精神的ダメージを軽減できます。
インポートボタンを押す前の1秒の深呼吸。それが、あなたの深夜残業を救うかもしれません。
【後日談】「やらかし」の連鎖と、社内SEの悟り
ようやく数千件の「写経」を終え、右手がマウスの形のまま固まっていた数日後のこと。
営業部から「ちょっと来てくれませんか……?」と、消え入りそうな声で内線が入りました。
「(まさか、また私のマスタ修正に不備が……!?)」
と、内心ビクビクしながら向かうと、そこには顔面蒼白の担当者が。
話を聞けば、お客様の販売単価を一括削除で全消去してしまったとのこと。
「やってしまった……」と絶望する彼らの姿は、数日前の私そのものでした。
私は、まだ少し震える右手で彼らの肩を叩き、「大丈夫やで〜」と微笑みました。
幸い、削除に使ったExcelデータが残っていたため、それを逆インポート(再登録)して無事復元。営業部には「神」のように感謝されましたが、心の中ではこう思っていました。
「一回は、みんなやってしまうもんなんよね……」
失敗して、1行ずつ直して、初めて人は優しくなれる。
マスタデータの重みを知る。
そんな、少しだけ背中がたくましくなった(気がする)社内SEの冬の日の出来事でした。
Q: Excelインポートで「0落ち」や「日付変換」を防ぐには?
A: セルを全選択し、書式設定をあらかじめ「文字列」に変更してからデータを貼り付けるのが最も確実な自衛策です。
Q: なぜ一括更新ができない項目があるのか?
A: プログラムの条件分岐(フラグ)に関わる重要項目など、データの整合性を厳格に守る必要がある箇所は、バグ防止のためあえて手動更新に制限されている場合があります。
いかがでしたでしょうか?ほかにもいろいろと投稿しておりますので、よろしければこちらもご確認ください。



コメント