スポンサーリンク
年賀状印刷などで住所録データを作るに当たり、下記のような元データを
- 住所を都道府県・市区町村・それ以降の番地 とに分割する
- 姓・名を一つの列に結合(スペース記号を挟んで)する
- 郵便番号の「-」記号は消す
といった加工を施したいということはあると思う。
今回はそれをPowerQueryで実施する手順(主に住所の分割)をやってみたい。
住所の分割
都道府県の分割
ではまず住所の変換からいきたい。
住所はたとえば「福岡県八女市」なら、語句「県」を基準にして「福岡県」と「八女市」に分割したい。
だが残念ながら直接それをやろうとすると、区切り語句「県」は消されて「福岡」と「八女市」に分割されることになってしまう。
なので、消されても良い区切り語句を新たに設定するのが良いだろう。
その区切り語句として、住所にはまず出てこないであろう「#」文字を使ってみる。
「住所」列を選択した状態で、リボン「ホーム」タブ→値の置換 とする。
置換ダイアログで、語句「県」を「県#」に置換すると入力し、「OK」を押す。
まあこの場合、「県営住宅」とかの語句が「県#営住宅」というように置換されてしまうのだが、そういう例外は後で改めて処理するってことで良いかなと。
「県」について置換したが、都・道・府についてはパターンが限定されるので個別に行けば良いだろう。上記と同様の要領で、
- 「東京都」→「東京都#」
- 「大阪府」→「大阪府#」
- 「京都府」→「京都府#」
- 「北海道」→「北海道#」
と置換していく。
次に
リボン「変換」タブ
→「列の分割」
→区切り記号による分割
とする。
そして、消される用に設定した「#」記号を区切り記号として記入し、「OK」を押す。
番地の分割
これで、都道府県とそれ以降とに分割されるところまではできる。
次は分割後データ・下図の「住所.2」について、番地が漢数字だとちょっと無理だけど、通常の数値の番地になってることを前提に、番地を分割してみる。
こういう場合は、数字の部分だけを切り離すちょうど良い分割コマンドがある。
リボン「変換」タブ
→「列の分割」
→「数字以外から数字による分割」
とする。
これで、番地以降の部分は、数字の部分とみなされて分割される。
ただ、「-」記号も数字以外の部分だとみなされるので、下図のように「住所2.2」「住所2.3」「住所2.4」などと複数列に分割される。
それらは普通に再度結合し直せば良いだろう。
リボン「変換」タブ
→「列のマージ」
とする。
区切り記号は「なし」で、新しい列名に「番地」などと適切に名称を入れて「OK」を押す。
これでひとまず、番地の部分は結合される。
姓名や郵便番号の処理
ここからは割と簡単。
まずは「姓」「名」を、スペース記号を挟んで一つに結合する。
「姓」「名」列を選択した状態でリボン「変換」タブ→「列のマージ」 とする。
区切り記号で「スペース」を選び、新しい列名に「氏名」と入れ「OK」を押す。
次に郵便番号から「-」記号を取り除く。
先程もやったばかりだが、リボン「ホーム」タブ→「値の置換」とする。
「検索する値」欄に「-」記号を入れ、「置換後」欄は空欄にして「OK」を押す。
これで一通りの加工は完了。まあ基本的なPowerQueryの操作だけで割と簡単ですね。
スポンサーリンク