
エクスプローラーからCSVファイルをダブルクリックすると先頭に
0が入っている文字列が数字と認識されて先頭0が取れてしまうのだ。

目次【本記事の内容】
- 1.ExcelをCSVファイルで安全に開く方法がわかる
- 1-1.Excelで郵便番号住所一覧を開く
- 1-2.Excelで先頭の0が取れないように開く
- 1-3.EXCELにCSVファイルを取り込む時のパラメータに注意する
- 2.CSVファイルを加工する時に使えるExcelのサポート機能を紹介
- 2-1.CSVファイルを取込んだシートに触らない
- 2-2.別のシートに入力していると入力候補が表示される
- 2-3.Accessのテーブルに郵便番号・住所データを取り込んでExcelから参照
- 3.追記
1.ExcelをCSVファイルで安全に開く方法がわかる
1-1 Excelで郵便番号住所一覧を開く
https://www.post.japanpost.jp/zipcode/download.html
ZIP形式なので解凍するとCSVファイルが出てくる。

私が過去にやらかしてしまった北海道の郵便番号の先頭0(ゼロ)が取れてしまっていることが分かる。
1-2 Excelで先頭の0が取れないように開く
そして先ほどダウンロードして回答したKEN_ALL.CSVを開く。


1-3 EXCELにCSVファイルを取り込む時のパラメータに注意する



2.CSVファイルを加工する時に使えるExcelのサポート機能を紹介
2-1 CSVファイルを取込んだシートに触らない
CSVファイルを取り込みしているシートでは加工しないほうが良い。
加工していると誤ってセルを編集してEnterキーを押すと先頭の0が取れてしまう。
気づけが良いが、気づけなかった時は問題ないので触らないことだ。
それより本来は郵便番号や住所のようなセンシティブ情報を扱うとき
に誰でも編集できるExcelで管理しないようにすることだ。
いくら注意してもうっかりミスを防ぐのは難しい。データベースソフトを使うのが望ましい。
2-2 別のシートに入力していると入力候補が表示される
という事で別のシートでCSVデータを抽出する式を埋め込んでみよう。
今回は郵便番号を入力すると都道府県、住所1、住所2をVlookup関数で表示するようにしてみる。
124,271件のレコードを検索する。以外なほどサックリと計算が終了10秒もかかっていない。Office365のパフォーマンスの良さを改めて感じた。
そして式を入力しているときに気づいたのだが、以下のような入力候補が表示されている。
まずはCSVのファイル名が入力候補として表示された。インポートしたのでシート名ではなくデータソースのCSVファイル名が候補として出てくるようだ。
続いて今度は列名が入力候補に表示されている。
見たところ郵便番号を取り込んだシートの列名が表示されているだけに見えたので、列名をわかりやすく変更して再度入力候補を出してみた。
変更したカラム名が候補として表示されるようになった。
ただし、Visual Studioのような操作性ではないのが残念。Enterキーを押すとエラーになってしまう。Tabキーかマウスでクリックすれば選択した候補が表示される。
2-3 Accessのテーブルに郵便番号・住所データを取り込んでExcelから参照
多分大丈夫だろうが、Excelで誤入力したと想定して正しいデータがAccessから反映されるのか確認した。



ココがポイント
先頭0は使わないようにコード設計してもらえればこんな苦労はしなくて済むのだが。
追記
-
-
全ExcelユーザーはRelaxtools Addinをインストールせよ
2019/09/12 実際に使っている動画をページの最後に追加しました。 Excelを使う時に最高に使えるAddinがRelaxtoolsだ。実はこのツールを知る前には自分で同じようなAddinを作っ ...
続きを見る
上の記事で書いているRelaxtools使えばCSVの前0を落とさないでExcelに取り込む機能がある。ただ、クリップボード経由だからサイズが大きいやつは時間がかかる可能性がある。