シャアはいる。

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

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

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

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

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

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

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

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

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

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

広告

2 件のコメント

  • excelでやる場合、http://pc.nikkeibp.co.jp/article/NPC/20070618/275150/あたりが参考になるかも。

    個人的にはノウハウやナレッジは検索すればある程度出てくるので「どう検索するか」「検索された情報は使えるものか」の検証であったり勘みたいなところだったり、調べなくても知ってるよ、というのがシャアのシャアたる所以かな、と思います。

  • エクセル・・・うーんこの例では、都道府県はどうにかなっても、市区郡、番地あたりまで一気にやろうとすると、大変そうですね(汗)エクセルでもできるんだけど、エクセルだけで完結する必要はないってこともあります。

    ノウハウっていうか、「代わりにする者」ですね。
    例えば、ソースコードをほとんど書かなくても、webサイトが作れてしまうとか。
    ワードプレスとかwikiとかXOOPSとか、こういうのも、人間に代わってソースコード(HTML)を作ってくれるわけですので。

    で、こういうオープンな技術はみんな知ってるとして、それ以上の働きをする”何か”を作って(持って)いるということになります。

    Googleのストリートビューで、ナンバープレートや人の顔にモザイク処理するのとかも、人間の代わりにそれをする者(シャア)が行っているとか・・・

    生身の人間という意味では、みんなそんなに変わらないと思いますよ。(知識的な差は時が解決するという意味で)