シャアはいる。

先日、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分)で作業を終えてしまいました。

他にどんなシャアがいるの?

シャアは、様々な形態をしています。
時にソフトウェアであったり、時にプログラムソースであったり。

プログラムなんて難しいこと分からないって方でも、シャアを身近に感じていることと思います。

例えば、自動車や電車もそうですし、会社で使っている経理ソフトや、スーパーのレジなんかもシャアじゃないでしょうか?

でも、シャアを手に入れるためにはお金が掛ります。
もしくは、シャアを自前で作れるだけの技術力が必要です。

私は、そんなシャアを量産しているし、多くのプロは、シャアを持っているんじゃないかと思います。

私が、あの時、頭の中に描いていたシャアは人間ではなく、人間の変わりに圧倒的なスピードと正確さで作業を行うもの全般を考えていました。

あぁ・・でもシャアは人間だしな。。。赤いザクが人間でシャアがロボットで・・あぁあああ・・・逆転しちゃってるし、、、すみません。ガンダムはあまり詳しくありません。。。

そうだ!いっそのこと、秀丸エディタとエクセルを擬人化しちゃえばいいんだ!
そうだそうだそうなんだ!!ということでお茶を濁そう。。。