Excel活用

【パワークエリ】郵便番号検索ツールの作り方

郵便番号を調べるときにネットで調べるの面倒くさくないですか?

しかも郵送物が多いときは特に大変だと思います。

これをエクセルで調べるツールがあれば便利ですよね、ってことで今回の記事です。

以前作った法人番号検索ツールと同じように、検索ワードをもとに郵便番号を表示するツールを、パワークエリを使って作ってみたお話です。

この記事でやりたいこと

検索ワードを入力して更新すると該当住所の郵便番号を表示する、こんなことをやりたいわけです。

と、言うわけで今回のポイントはこちら。

  • フォルダ取得による複数データの取得と結合
  • 住所列をフィルタリング
  • 検索ワードの変数定義

検索ツールの作り方

事前準備(1)郵便番号データの取得

まずは郵便番号データを取得する必要があります。

それにはこちらのサイトをご覧ください。

https://www.post.japanpost.jp/zipcode/dl/oogaki-zip.html

ご覧の通り、都道府県別のデータですので、主に調べたい都道府県のCSVデータを取得します。

事前準備(2)取得データの保存

次に、取得したデータを任意のフォルダに保存します。

その際、このような階層にしておくことをお勧めします。

このように保存しておくことで、ツールと郵便番号データが行方不明になることを防げますし、他府県の郵便番号データを取得した時はこの郵便番号データフォルダに保存するだけで自動的に追加することができます。

ちなみにこのままだとフォルダの保存場所を変えるだけで使えなくなるので、こちらの記事の方法で保存場所を変えても使えるようすることができます。

事前準備(3)検索ワードテーブルの作成

次に郵便番号検索ツールの方です。

検索ワードを入力するテーブルを作成しましょう。

挿入タブのテーブルより、検索ワードの入力セルをテーブル化します。

ついでに、分かりやすくテーブル名も変えてみましょう。

テーブルデザインタブよりプロパティ欄のテーブル名を変えてみました。

これで準備は完了です。

続いて郵便番号データの取得に移ります。

郵便番号データの取得(フォルダ取得)

今回は複数データをまとめて取得するため、フォルダーから取得を使って進めていきます。

データタブより「データの取得」「ファイルから」「フォルダーから」と進みます。

次に、郵便番号データを格納したフォルダを選択します。

ここでは結合ボタン「結合と変換」を選択します。

これでデータの取得が完了です。

列内容の確認と削除など

取込が完了したら、ツールに表示したい項目に整地していきます。

使うのはこの4項目だけなので、不要な列を削除し、また住所に関しても列のマージを使って住所列一列に統合します。

こんな感じに整地します。郵便番号にハイフンを追加する方法は、列追加タブより「例からの追加」を使えば簡単にできます。

フィルタ機能を使った絞り込み

次にフィルタ機能を使って住所列を検索ワードで絞り込みます。

住所列の▼をクリックしテキストフィルターより「指定の値を含む」を選択します。

ここは適当に住所を入力します。(後で書き換えます)

これであとは検索ワードと連携するようにすれば完成です。

検索ワードの変数定義

これは相対パスにする方法と同じ方法を使います。

まず、ホームタブより「詳細エディター」を開きます。

次に詳細エディターの内容です。

変更箇所は2点。

let直下に以下の文を追加します。

SW = Excel.CurrentWorkbook(){[Name="検索"]}[Content]{0}[検索ワード] ,

ここでは検索ワードをSWと定義しています。

そして、フィルターする語句を変数「SW」に置き換えます。

これでクエリでの作業は完了、あとは任意のセルに読込むなどして完了です。

出来上がりはこんな感じ。

ちなみに以前この記事でクエリの関数化という話を書いたのですが、今回これは使えません。

どうもフォルダ取得する際にこの関数化を使った変換が行われているらしく、一度関数を使って作ったテーブルをさらに関数にすることはできない仕様のようなのです。

ですので今回は相対パスと同じ方法を使っています。

最後に

いかがだったでしょうか。

取得した郵便番号データをもとに、保存場所を決めてまとめて取り込み、取り込んだデータを整地してフィルタで絞り込む、絞り込むために検索ワードを変数定義してフィルタリングする語句に投入する、といった方法で作ることができました。

一見大変そうですが、覚えてしまえばそれほど難しくなく使いまわしが効く方法だと思うので、ぜひマスターしてください。

最後までお読みいただきありがとうございました!