シャアはいる。
篠原 隆司
先日、twitterで、ululunさんと、シャアがいるかいないかと真剣に議論してみました。
その一部始終は、ululunさんがブログに、[雑感]うちの会社にシャアがいますとして、上げてくださっています。
さて、本日作業をしていて、
「あっ、これがシャアだよね」
って場面が出てきたので、紹介したいと思います。
シャアの・・の前に、前提というか背景
まず現在の状況として、
【エクセル管理をしてきた仕事を、webシステムに置き換える】
ということで、システム開発を行っております。
で、今使っているエクセルデータを、【システムにインポートできる形式】に作りかえる必要があります。
複数のシートを利用し、データが散らばっていたり、マクロなどを多用しているため、そのままではインポートに適さないからです。
既存のエクセルデータに、システム導入までの間に追加されたデータは、考慮しなくて良いものとします。
システム導入時に、クライアント側が操作に慣れるために、データ登録ができる余地を残しておくためです。
やりたいこと
東京都港区芝公園4丁目2-8
現在、↑これが1つのセルの中に入っています。
これを、都道府県、住所1、住所2、住所3の4つの列に分割し、
東京都 港区 芝公園 4丁目2-8
[都道府県] [住所1] [住所2] [住所3]
このように分けます。
もちろん、他の項目の列も同じような作業が必要な箇所が多々あります。
データ数としては、全体で40列、1000行程度あります。
手作業でやってみますか?
これらを全部、手作業で編集していくことももちろんできます。
だけど、1000行。。。
考えただけで気が遠くなります。
1行につき、10秒と考えても、10,000秒(約2時間40分)
2時間40分もの間、休憩なしで黙々と作業できますか?
オレは1行5秒だっ!と言っても半分の1時間20分。
当然、間に休憩が必要ですし、作業ペースはだんだん落ちてきます。
今回のクライアント企業は、1,000件のデータで良かったけど、これが2,000件、3,000件・・・と考えたら、人海戦術ですか??
他のやり方を考える
エクセルとシステムのクッション材として、変換プログラムを作ってしまうこともできます。
エクセルを読み込み、目的の形式に変換して、新しいエクセルファイルへと出力する。
VBやCなどでもいいし、エクセル付属のマクロでも可能だと思います。
たぶん、1時間もあれば、このくらいのプログラムは作れると思います。
でも・・・
私がどのようにしたのか?
まず、データ(住所)をよく観察してみます。
すると・・・
【東京都港区芝公園4丁目2-8】
●「都」で終わる場所が「都道府県」
●「区」で終わる場所が「住所1」
●数字が始まる直前までが「住所2」
●数字から始まる場所が「住所3」
このような法則が見えてきませんか?
でも住所は、東京だけではないですし、郡市区町村があります。
「市」の中に、「区」がある場合もあります。
それらを考慮すると、次のようになります。
●先頭から3~4文字目に「都道府県」のいずれかの文字が、「都道府県」
●続けて、「市区郡」が見つかる場所までが「住所1」
●続けて、数字が始まる場所までが「住所2」
●数字以降が、「住所3」
となります。
観察して法則は分かったけど、どうするのか?
まず、秀丸エディタを起動します。
次に、既存のエクセルファイルから、住所の列を、上から下まで1000行分コピーします。
そして、コピーした内容を秀丸エディタに貼り付けます。
秀丸のショートカットキー CTRL + R を押し、【置換】を表示します。
検索の欄に
(.+[都道府県])(.+[郡市区])([^0-9]+)(.+)
置換の欄に、
1 2 3 4
と入力し、
「正規表現」という場所にチェックを入れ、置換を実行します。
すると、
【東京都港区芝公園4丁目2-8】
が、
【東京都 港区 芝公園 4丁目2-8】
このように変わります。
間に、半角スペースが入ったのが確認できます。
秀丸エディタを使って、半角スペースで区切れたあとは
とりあえず、秀丸エディタの内容を全て選択し、コピーします。
次に、新しくエクセルを起動します。
これは、別に、空いているシートでもなんでも構いません。
そして、貼り付けます。
おそらく、A列に1000行分コピーされたかと思います。
次に、A列全体を選択した状態で、エクセルの、上部にある 【データ】→【区切り位置】を選択します。
「カンマやタブなどの・・・」を選択し、
区切り文字を「スペース」
「完了」
これで、半角スペースを区切りとして、A~D列に分解できました。
で、最終確認として、1,000行分を目視確認していきます。
といっても、基本的に、A~D列に納まっていれば・・・逆に言うと、E列とかに飛び出していなければOKですので、ほぼ斜め読みです。
あとはもう、目的のエクセルファイルに移動するだけです。
ここまでの作業時間、約5分。
で、シャアはどこにいるの?もしかしておまえ?
いえいえ、私ではありません。
今回、例に出した場面での「シャア」は、秀丸エディタとエクセルです。
手作業(約2時間40分)でやるよりも、変換プログラムを組む(1時間)よりも、圧倒的なスピード(約5分)で作業を終えてしまいました。
他にどんなシャアがいるの?
シャアは、様々な形態をしています。
時にソフトウェアであったり、時にプログラムソースであったり。
プログラムなんて難しいこと分からないって方でも、シャアを身近に感じていることと思います。
例えば、自動車や電車もそうですし、会社で使っている経理ソフトや、スーパーのレジなんかもシャアじゃないでしょうか?
でも、シャアを手に入れるためにはお金が掛ります。
もしくは、シャアを自前で作れるだけの技術力が必要です。
私は、そんなシャアを量産しているし、多くのプロは、シャアを持っているんじゃないかと思います。
私が、あの時、頭の中に描いていたシャアは人間ではなく、人間の変わりに圧倒的なスピードと正確さで作業を行うもの全般を考えていました。
あぁ・・でもシャアは人間だしな。。。赤いザクが人間でシャアがロボットで・・あぁあああ・・・逆転しちゃってるし、、、すみません。ガンダムはあまり詳しくありません。。。
そうだ!いっそのこと、秀丸エディタとエクセルを擬人化しちゃえばいいんだ!
そうだそうだそうなんだ!!ということでお茶を濁そう。。。