BLOGスタッフブログ

2024.08.09 管理部

パワークエリで文字列を編集してみる

最近需要があった文字列整形

同じコードの複数行をまとめて同じセルに改行で集約する。という整形です。

ビフォア

アフター

ボスからご依頼があり、普通にエクセルでこれをやろうと考えたのですが、ちょっと思いつかず。簡単なプログラムを書くしかないのではないかと一瞬、思ったのですが、パワークエリでできます。

簡単な、と言っていますが毎回忘れて思い出すのに時間がかかるので、ブログ当番なのを良いことに、自分のための備忘録として記録しておこうと思います。(お客様のIDやお名前は架空の名前です。偶然同じ名前の方がいらっしゃいましたら申し訳ございません)。

……私が読みたくないので画像いっぱいです!

【やり方】

下処理。

まず、元の表を少し加工します。「お客様名」と「商品」を一つのセルにまとめます。セルの文字を足し算です。まとめたセルは、「BとC」としておきました。名前は何でも良いです。

セルをまとめます。

パワークエリーに取り込みます。

表の範囲を選択し、「データ」タブメニューで「テーブルまたは範囲から」をクリック

「テーブルの作成」で「先頭行をテーブルの見出しとして使用する」にチェックを入れておきます。「OK」をクリック。PowerQueryのエディターが開きます。

まとめたいIDの行を選択しておき、「グループ化」をクリック。まとめたい列名の下に、新しい列名を入力します。名前は何と付けても良いので「なんでもいい」と入力しています。うふふ。

「操作」の欄は「すべての行」を選択して「OK」します。

そうすると、下の画像のようになります。「なんでもいい」の1行目をクリックしてます。そうするとグループでまとまっている内側のリストが画面下の部分に見えます。

ここからがキモなのですが(私も分からなくなるところです)

「列の追加」タブの「カスタム列」をクリック。カスタム列の画面で、下のように「カスタム列の式」を入力します。

式の背景が水色の部分は手書きです。どう書くかは上の画像の列名を参照してください。書き終わったら「OK」をクリック。

「カスタム」列の右「⇔」メニューで「値を抽出する…」を選びます。

「リストから値を抽出する」の画面で、「特殊文字を使用して連結」にチェック(※改行が特殊文字扱いなんです)。「復帰改行」を選びます。改行だけでも、いけそうな気もするんですが、たぶんこっちがいいです。

「復帰改行」を選択すると↑こんな感じです。「OK」ボタンをクリックします。そうするとパワークエリー上の「カスタム」の列にもうできてます。

やった。保存しましょう。

「ホーム」のタブで「閉じて読み込む」をクリックします。

左側の状態で、いままでのレガシーエクセルの画面に戻ってくるので、あれ? 改行されていないと一瞬焦りますが。画像だとB2のセルをダブルクリックしてみてください。右の画像のように改行が入っていることが分かります。

「テーブル」として、背景しましまの状態ですが、気に入らない場合は表をコピーして、他のシートに値貼り付けすると今まで通りのエクセルとして使えます。

蕪木 奈月が書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します