下請けCOBOLERとして生きていた頃のノウハウ Advent Calendar 2016の7日目の記事です。
###レガシーな現場ではエクセルを制する者がすべてを制す
COBOLの下請け現場ではエクセルを使いこなす力が重要になります。
今回は関数についてです。
正直なところ、関数なんて適当にググればわかるのですが、残念ながら下請けCOBOL現場ではインターネットに繋がらない環境人も多いと思います。
また、プロキシで監視されていて実質使えないみたいなところもあると思います。
知っておくべき関数はとりあえずこのくらいじゃないでしょうか
・SUM
・VLOOKUP
・IF
・ROW(行数を1~縦に引っ張るのもいいのですが、間に行が追加されたとき振りなおすのは面倒ですよね)
とにかくVLOOKUPはとても強い味方になります。
自分は一度、異常なデータの正常なデータへのupdateの必要があった際、異常なデータを抽出するsqlの結果を張り付けて、そこから関数を仕込みまくってupdateのsqlを導き出すという軽いプログラムレベルのエクセルブックを作ったこともあります。
大規模な現場では事故防止のため本番作業はどこまでも機械的にできることが要求されます。
本当はVBAでもよかったと思います、あまり難しいことをやると、上の人が理解しきれないので、
なるべく簡単な技術を用いて上の人が理解しきれる範囲の技術を用いてなにかを作りましょう!
※余談ですが、似たようなことをする別の機会があった時(誤ったなデータを吐き続けるdatファイルの中身を修正する作業)はdatファイルを汎用機に読み込ませて、ホストで使われていたユーティリティを組み合わせたJCL(シェルスクリプトみたいなもの)を作ったということもあります。
しかもそれが日時バッチの途中のdatファイルだったので、を数か月分全部そのJCLを通して修正し、後続を流しなおすという作業もしたことがあります。
なんで誤ったPGMを直さないかというと。本番リリースのためにはお客様への説明と、修正してリリースしてよいという判断のための材料集め(つまりはエクセルと大量のスクリーンショット)が必要なので、ここが間違ってるとわかってもリリースには最速でも一週間かかります。普通は一か月かかるので、その間に生み出され続ける異常データはこうやって手作業で直し続けるのです。