パワークエリの「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのサムネイル
AさんAさん

「請求金額」列は単位が付いた数値になっているので、「請求金額」(数値のみ)と「単位」で2列に分割したいです。
Power Queryエディター上で数字か文字かを基準に列を分割したい場合、どうしたら良いですか?

森田森田

その場合、Power Queryエディター上の「数字から数字以外による分割」コマンドを使えば良いですよ!
では、詳細を解説していきますね。

Excelステップ講座

はじめに

この記事はパワークエリの概要を把握していることが前提です。

参考記事

パワークエリの概要については、以下の記事をご参照ください。

「数字から数字以外による分割」・「数字以外から数字による分割」の使いどころ

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドは、クエリの新規作成ステップのうち、STEP2の「取得データを整形/加工(Transform)」に該当する機能です。

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのスコープ

クエリ内の一連の整形作業の中で、特定の列を数字か文字かで分割したい場合に「数字から数字以外による分割」・「数字以外から数字による分割」コマンドを使いましょう。

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドの使いどころ

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドを活用することで、指定した列を数字と文字の複数列に分割することが可能です。

なお、「数字から数字以外による分割」コマンドは数字+文字の列を数字・文字の2列に、「数字以外から数字による分割」コマンドは文字+数字の列を文字・数字の2列に分割します。

使用イメージ

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドを使用した際のイメージは、それぞれ以下をご覧ください。

「数字から数字以外による分割」コマンド

「請求金額」列を対象に「数字から数字以外による分割」コマンドを使用し、「請求金額」・「単位」の2列に分割したイメージが以下です。

「数字から数字以外による分割」コマンドの使用イメージ

Power Queryエディター上で数字か文字かを基準に列を分割したステップを登録できました。
「数字から数字以外による分割」コマンドの場合、デフォルトのステップ名は「文字の移行による列の分割」になる(クエリ内で2つ目以降の「文字の移行による列の分割」ステップは連番が付加)。
分割後の数字の列はデータ型が「テキスト」のままのため、後工程で数値として整形あるいは集計する場合、データ型を「整数」等へ変更すること。

「数字以外から数字による分割」コマンド

「請求番号」列を対象に「数字以外から数字による分割」コマンドを使用し、「記号」・「日時」の2列に分割したイメージが以下です。

「数字以外から数字による分割」コマンドの使用イメージ

Power Queryエディター上で文字か数字かを基準に列を分割したステップを登録できました。
「数字以外から数字による分割」コマンドの場合、デフォルトのステップ名は「文字の移行による列の分割」になる(クエリ内で2つ目以降の「文字の移行による列の分割」ステップは連番が付加)。
分割後の数字の列はデータ型が「テキスト」のままのため、後工程で数値として整形あるいは集計する場合、データ型を「整数」等へ変更すること。

各ステップ登録後のイメージ

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップを登録後、クエリ新規作成ステップのSTEP2で必要な他ステップを登録したら、STEP3を行いましょう。

これにより、クエリに記録した「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップを自動化できます。
「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップ登録後、分割対象の列名を変更すると、クエリ更新時にエラーになるため注意(対処法は、後述の「登録したステップの変更手順」を参照)。

参考記事

クエリの新規作成ステップのSTEP2に役立つ各種コマンドの詳細は「パワークエリ(Power Query)の記事一覧」を、STEP3の手順はパワークエリの概要記事をご参照ください。


ステップ登録手順

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップを登録したい場合は、以下の手順となります。

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップ登録手順

  1. 分割したい列を選択
    ※今回は「請求金額」列
  2. リボン「変換」タブをクリック
  3. 「列の分割」をクリック
  4. 「数字から数字以外による分割」or「数字以外から数字による分割」をクリック
    ※今回は「数字から数字以外による分割」

手順②は、手順①のヘッダー上で右クリック、リボン「ホーム」タブでもOK(それぞれ同じコマンドがある)。
手順③の「列の分割」コマンドは、手順①で1列のみ選択しないと活性化されない。
手順④は、手順①の列が数字始まりか文字始まりかかで使い分け。

【注意】「列の分割」は「列の追加」タブに存在しない

「列の分割」コマンドは、リボン「列の追加」タブに存在しません。

よって、前述のステップ登録手順①で選択した列を上書きしたくない場合、事前に「重複する列」コマンドで対象の列を複製しておきましょう。

「重複する列」コマンドのステップ登録手順

  1. 複製したい列を選択
    ※今回は「請求金額」列
  2. リボン「列の追加」タブをクリック
  3. 「重複する列」をクリック

後は、複製した列に対し、ステップ登録手順を行えば、分割前後の列がすべて残ります。

登録したステップの変更手順

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドで登録したステップの対象列等を後から変更する場合、一旦既存のステップを削除し、「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップを再登録すればOKです。

具体的な手順は以下の通りです。

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップ変更手順(その他)

  1. 「文字の移行による列の分割」ステップを削除(「×」をクリック)
  2. 再度「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのステップ登録手順を実行

手順①のステップ名は、「数字から数字以外による分割」・「数字以外から数字による分割」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ整形_数字から数字以外による分割.xlsx

サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。

ブックを開いたら、「請求データ(数字から数字以外による分割)」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。

  1. 分割したい列を選択
    ※今回は「請求金額」列
  2. リボン「変換」タブをクリック
  3. 「列の分割」をクリック
  4. 「数字から数字以外による分割」or「数字以外から数字による分割」をクリック
    ※今回は「数字から数字以外による分割」

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドは、数字か文字かを基準に指定した列を複数列に分割できます。

1列の中の数字部分を対象に整形や集計したい場合に活用しましょう。

なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!

森田貢士の公式LINEへの友だち追加告知用バナー

ご参考になれば幸いですm(_ _)m

森田森田

「数字から数字以外による分割」・「数字以外から数字による分割」コマンドに慣れたら、他のデータ分割に役立つコマンドもセットで覚えることをおすすめします。
具体的には、区切り記号を基準に分割する「区切り記号による分割」コマンド、文字数を基準に分割する「文字数による分割」コマンドです。
作業目的やデータ内容に応じて、これらのコマンドをうまく使い分けできるようになりましょう!