前回の反対パターン。住所から郵便番号を検索する方法。
今時(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(
郵便番号列の編集, {"郵便番号", "住所"}
)
これで完成。
くれぐれも大量のデータではやらないように。本来は郵便番号データを用意してやるべきことなので。