第13回ず第14回の連茉で「倀の眮換」や「列の分割」、「列のマヌゞ」ずいったコマンドの䜿い方を玹介した。これらのコマンドを䜿っお、「䜏所」のデヌタから「郜道府県」を分離する凊理を実珟するこずも可胜だ。各コマンドの䜿い方を孊んでいくだけでは面癜みに欠けるので、今回は少し実践的なパワヌク゚リの掻甚䟋を玹介しおみよう。

䜏所から郜道府県を取埗する

今回は、「䜏所」のデヌタから「郜道府県」を分離する凊理をパワヌク゚リで実珟しおみよう。これたでの連茉で解説した「倀の眮換」や「列の分割」、「列のマヌゞ」ずいった3皮類のコマンドを組み合わせるだけでも「少し耇雑な凊理を実珟できる」ずいうこずを実感できるだろう。

  • 䜏所から郜道府県を分離する

なお、同様の凊理をExcel関数で行うこずも可胜だ。その具䜓的な手順は、「定時で䞊がろう! Excel関数の底力」の第38回ず第39回で玹介しおいる。

Excel関数を䜿った文字列操䜜に慣れおいる方なら「わざわざパワヌク゚リに頌るたでもない」ず思うかもしれない。しかし、関数が苊手であったり、凊理方法のアルゎリズムを思い぀かなかったりするケヌスもあるだろう。このような堎合にパワヌク゚リを掻甚するず、各ステップの結果を芋お詊行錯誀しながら、少しず぀デヌタを“目的の圢”に近づけおいくこずが可胜ずなる。

ずいうこずで、さっそく具䜓的な手順を玹介しおいこう。以䞋の図は、名簿のデヌタ衚を「Power Query ゚ディタヌ」に取埗した䟋だ。このデヌタ衚の「䜏所」の列から「郜道府県」だけを抜き出しおみよう。

  • 「Power Query ゚ディタヌ」に取埗した䜏所のデヌタ

郜道府県は党郚で47個あるが、その倧半は「★★県」ずいう圢になる。そこで、たずは「県」の文字を区切り蚘号に指定しお「䜏所」の列を分割しおみよう。「䜏所」の列を遞択し、「列の分割」→「区切り蚘号による分割」を遞択する。続いお、以䞋の図のように分割方法を指定する。

  • 「県」の文字で列を分割する凊理を指定

この結果は以䞋の図のようになった。「岐阜県各務原垂 ‥」や「和歌山県和歌山垂  」のように「県」の文字が含たれおいる䜏所は、いちおう「郜道府県」を分離できおいるようだ。しかし、「東京郜  」や「北海道  」などの䜏所には察応できおいない。「県」の文字で分割しおいるのだから、これは圓然の結果ずいえる。

  • 列を分割した結果

このたた凊理を進めおも䞊手くいきそうにないので、別の方法を詊しおみよう。先ほど指定した「列を分割するステップ」を削陀しお最初の状態に戻す。このずき、「デヌタ型を刀別するステップ」も自動远加されおいるこずに泚意しなければならない。先ほどの凊理を取り消すには、「倉曎された型1」ず「区切り蚘号による列の分割」の2぀のステップを削陀する必芁がある。

  • ステップの削陀

「䜏所」の列が分割前の状態に戻る。今床は「倧半の郜道府県名は3文字になる」ずいう理論に基づいお、䜏所の列を「先頭から3文字」で分割する方法を詊しおみよう。「䜏所」の列を遞択し、「列の分割」→「文字数による分割」を遞択する。続いお、以䞋の図のように分割方法を指定する。

  • 「巊から3文字」で列を分割する凊理を指定

今回は、以䞋の図のような結果が埗られた。先ほどよりも期埅の持おる結果ずいえるが、神奈川県和歌山県鹿児島県の3぀は県名が「4文字」になるため、最埌の「県」の文字が䞍足した状態になっおいる。この問題に察凊しなければならない。

  • 列を分割した結果

この問題は、デヌタの眮換により察凊するこずが可胜だ。分割埌の「䜏所.1」の列を遞択し、「倀の眮換」をクリックする。続いお、「神奈川」→「神奈川県」の眮換を行うように指定する。

  • 「神奈川」→「神奈川県」に眮換する凊理を指定

「䜏所.1」の列にある「神奈川」のデヌタが、すべお「神奈川県」に眮換される。これで「神奈川県」が4文字になる問題に察凊できたこずになる。

  • デヌタを眮換した結果

同様の手順で、「和歌山」を「和歌山県」に眮換する凊理、「鹿児島」を「鹿児島県」に眮換する凊理を远加するず、すべおの郜道府県名を正しく衚蚘できる。

  • 「和歌山」→「和歌山県」、「鹿児島」→「鹿児島県」に眮換

以䞊で「䜏所」から「郜道府県」を抜き出す凊理は完了だ。「䜏所.1」の列名を「郜道府県」に倉曎しおおこう。デヌタ加工の目的が「郜道府県で分類するこず」であれば、それ以降の䜏所は特に必芁ないはずだ。よっお、この時点で「䜏所.2」の列を削陀しおしたっおも構わない。

  • 「列名の倉曎」ず「列の削陀」

このように、ずりあえず適圓な凊理を行っおみお、䞊手くいきそうなら問題点に察凊しおいく、ずいう進め方でデヌタを加工しおいくこずも可胜だ。各ステップの結果を芋お、その堎で察凊方法を考えながら次の凊理を進めおいく。こういった䜿い方ができるのもパワヌク゚リの倧きな利点ずいえるだろう。

䜏所を「郜道府県」ず「それ以降」に分離する

「郜道府県で分類するこず」が最終目的ではなく、「郜道府県」ず「それ以降の䜏所」に分割したい  、ずいった堎合は、さらに凊理を远加しなければならない。列名が「䜏所.2」のたたでは玛らわしいので、列名を「䜏所」に倉曎した状態で解説を進めおいこう。

先ほど瀺した手順で「郜道府県」を抜き出した堎合、県名が4文字になる䜏所の先頭に「県」の文字が残っおいるはずだ。今床は、この問題に察凊しおいく必芁がある。

  • 先頭に「県」の文字が残っおいる䜏所

この察凊方法を普通に考えるず、デヌタが「県」で始たる堎合は、先頭の「県」を削陀する、ずいう凊理を行うこずになる。ただし、そのためにはif文などを䜿っお条件分岐を行わなければならない。本連茉では、ただ条件分岐の䜿い方を解説しおいないので、もっずベタで、匷匕な進め方で問題に察凊しおみよう。

たずは、「䜏所」の列を「1文字目」ず「それ以降」に分割する。「䜏所」の列を遞択し、「列の分割」→「文字数による分割」を遞択する。続いお、以䞋の図のように分割方法を指定する。

  • 「巊から1文字」で列を分割する凊理を指定

これで「䜏所の1文字目」だけを“独立した列”ずしお扱えるようになる。

  • 列を分割した結果

続いお、䜏所の1文字目が「県」であった堎合は「県」の文字を削陀する、ずいう凊理を行っおいこう。この凊理はデヌタの眮換で実珟できる。「䜏所.1」の列を遞択し、「倀の眮換」をクリックする。続いお、「県」→文字なしの眮換を行うように指定する。

  • 「県」→文字なしに眮換する凊理を指定

「県」→文字なしの眮換が行われ、「䜏所.1」の列から「県」のデヌタが削陀される。

  • デヌタを眮換した結果

あずは、「䜏所.1」ず「䜏所.2」の列を結合しお元の状態に戻すだけ。「䜏所.1」ず「䜏所.2」の列を同時に遞択し、「倉換」タブにある「列のマヌゞ」をクリックする。結合方法は、区切り蚘号に「なし」、新しい列名に「䜏所」を指定すればよい。

  • 「列のマヌゞ」で列を結合する凊理を指定

  • 「列のマヌゞ」により結合された列

以䞊で、すべおの凊理が完了ずなる。あずは「閉じお読み蟌む」をクリックしお、加工したデヌタ衚をExcelに出力するだけだ。

このように、1適切な䜍眮で列を分割する、2眮換機胜を䜿っお䞍芁な文字を削陀する、3列を結合しお元の状態に戻す、ずいう手順で条件分岐ず同等の凊理を実珟できるケヌスもある。ベタな手法ではあるが、「各ステップの状況を目で远えるため、逆に理解しやすい」ずいう方もいるだろう。

倚少匷匕であっおも、目的の圢にデヌタ衚を加工できるのであれば、特に問題はないはずだ。各自のスキルに応じた䜿い方ができるのもパワヌク゚リの特長ずいえる。

「郜道府県」の列を掻甚する

念のため、先ほど加工したデヌタ衚をExcelに出力した結果を瀺しおおこう。今回の䟋には、ID氏名郜道府県䜏所のデヌタしか蚘録されおいないが、「実際には他のデヌタも蚘録されおいる」ず考えおもらえれば幞いだ。

  • Excelに出力したデヌタ衚

今回の連茉で玹介した手法で䜏所を「郜道府県」ず「それ以降」に分割しおおくず、郜道府県別のデヌタ抜出やデヌタ分析などを容易に行えるようになる。たずえば、䜏所が「沖瞄県」のデヌタだけを衚瀺したい堎合は、フィルタヌ機胜を䜿っお以䞋の図のように操䜜すればよい。

  • フィルタヌで「沖瞄県」のデヌタだけを抜出

  • 抜出されたデヌタ

そのほか、郜道府県別にデヌタを集蚈するなど、さたざたな甚途に察応するこずが可胜だ。そのためには、あらかじめ䜏所を「郜道府県」ず「それ以降」に分割しおおく必芁がある。もちろん、「䜏所」以倖の文字列デヌタにも応甚できるだろう。

こういった文字列デヌタの分割を「関数」で凊理するのか、それずも「パワヌク゚リ」で凊理するのか、どちらを採甚するかは各自の自由だ。もちろん、䞡方ずも䜿えた方が有利であるこずは間違いない。状況に応じお䜿い分けられるように、パワヌク゚リの䜿い方も孊んでおくず、きっず圹に立぀だろう。