なんでもエクセル(Nandemo Excel)

何でもエクセルでやってしまう そこのあなた。ようこそ

Power Query:住所から郵便番号を検索する

前回の反対パターン。住所から郵便番号を検索する方法。

今時(Microsoft365)は数式でもできなくはないんだけど……

=TEXT(WEBSERVICE("https://api.excelapi.org/post/zipcode?address="&ENCODEURL([@住所])),"000-0000")

とりあえず今回は PowerQueryでやってみる。

    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    型の変更 = Table.TransformColumnTypes(ソース, {{"住所", type text}}),

ここまで前回と同じ。ここから郵便番号検索のページにアクセスして、郵便番号の情報を呼び出す。

    郵便番号列の追加 = Table.AddColumn(
        型の変更, "郵便番号",
        each Web.Page(Web.Contents(url&[住所]))
            {0}[Data]{0}[Children]{1}[Children]{0}[Text],
        type text
    ),

これで下記のような状態になる。後は書式を少しいじって列を並べ替えるだけ。

    郵便番号列の編集 = Table.TransformColumns(郵便番号列の追加, {
        "郵便番号",
        each Number.ToText(Number.From(_), "000-0000"),
        type text
    }),
    列の並べ替え = Table.ReorderColumns(
        郵便番号列の編集, {"郵便番号", "住所"}
    )

これで完成。

くれぐれも大量のデータではやらないように。本来は郵便番号データを用意してやるべきことなので。