Power Queryでセル内改行のデータを縦に分割する方法
2023-05-05
azblob://2023/05/05/eyecatch/2023-05-05-power-query-clean-up-excel-000.jpg

こんにちは、あおいです。
劇場版『名探偵コナン 黒鉄の魚影(サブマリン)』2回目観てきました!良すぎる。特にラストのピンガのシーン。分かる人には分かるはず。




さて、Power BIでExcelのデータを可視化したいけど、1つのセルに改行で連続したデータが入力されていて扱いづらい…なんて経験ありませんか?




このままでは非常に扱いづらいので、以下のように縦に分割する必要があります。



実は過去の記事でも紹介しましたが、今回はちょっとした応用編となっています。
Power Queryの「列の分割」でExcelのセル内改行データを行で分割する | cloud.config Tech Blog



応用編と言っても、そんな難しいことをする訳じゃないので気軽に読んでみてください。もし、難しく感じても「へぇ~、こういう方法もあるんだ~」程度の理解で大丈夫です。記憶の片隅にとどめていただければ。




[データを取得]から対象のExcelを選択して、[データの変換]をクリックします。




しばらくすると、Power Queryエディターが起動します。

画面右側の適用したステップに[変更された型]が表示されていますが、この時点では不要なので削除します。




また、テーブルに不要な空白行もあるので、[行の削除]=>[上位の行の削除]を選択して削除し、[1行目をヘッダーとして使用]をクリックします。




「Column1」列を選択した状態で、[その他の列のピボット解除]をクリックします。列名も適切な名前に変更します。




あとはこちらの記事でも紹介しているように、[列の分割]⇒[区切り記号による分割]で縦に分割します。




さらに[列の分割]⇒[区切り記号による分割]で値を「支店名」と「金額」に分割して、列名も適切な名前に変更します。分割した後は、[値の置換]で不要な記号を削除します。




これでセル内改行のデータを縦に分割できました。




ただ、最終的に欲しいデータは、「金額」に対して「売上高」と「仕入原価」が横にピボット展開してほしい状態です。


したがって、「Column1」列を選択した状態で[列のピボット]をクリックします。値列に[金額]、詳細設定オプションに[集計しない]を選択し、[OK]をクリックします。




綺麗に行で分割されていますね。





今回はこちらの応用編という形で紹介させていただきました。個人によっては難しいと感じる方もいらっしゃるかもしれませんが、「へぇ~こういう方法もあるんだ~」程度の理解で問題ないです。”その時”がきたら、本記事の方法は必ず役立ちます。