PowerQuery 文字列の分割方法|複数の区切り記号での分割も解説!

PowerQuery(パワークエリ)で文字列を分割する方法を紹介します。分割機能の種類や使い方から応用例まで解説していますので参考にしてみてください。

ドノ

複数の区切り記号で分割する方法 や 改行コードによる分割方法なども紹介しています。

注意点として列の分割では元のデータを残すことができません。もし元のデータを残したまま一部を抽出したい・切り出したいという場合はこちらの文字列の抽出の記事を参考にしてみてください。

目次

文字列の分割方法

パワークエリで文字列を分割するには「列の分割」機能を用います。分割機能の種類や使い方について紹介します。

分割の種類

パワークエリの文字列の分割機能は以下の6種類です。

種類分割箇所
区切り記号による分割区切り記号
文字数による分割文字数(左から or 右から)
位置指定位置
小文字から大文字による分割小文字から大文字に変わる箇所
大文字から小文字による分割大文字から小文字に変わる箇所
数字から数字以外による分割数字から数字以外に変わる箇所
数字以外から数字による分割数字以外から数字に変わる箇所

分割機能の使い方

区切り記号による分割

指定の区切り文字で文字列を分割する。

【設定項目】

  • 区切り記号
  • 分割箇所
  • 引用符文字 ※基本「”」のままでOK
  • 特殊文字の使用有無 ※改行コードなど

文字数による分割

文字数(長さ)によって文字列を分割する。

【設定項目】

  • 文字数
  • 分割箇所

位置

位置によって文字列を分割する。
指定した位置よりも右側にある文字列が抽出されます。

複数の位置も設定することができ、例えば位置を2,5とした場合は3~5文字目と6文字目以降の2つの文字列が抽出されます。

小文字から大文字による分割 / 大文字から小文字による分割

文字列を小文字と大文字の切り替わりで分割する機能です。設定項目はありません。
文字列を分割する列をクリックして「小文字から大文字による分割」または「 大文字から小文字による分割」を選択するだけでOKです。

数字から数字以外による分割 / 数字以外から数字による分割

文字列を数字と数字以外の切り替わりで分割する機能です。設定項目はありません。
文字列を分割する列をクリックして「数字から数字以外による分割」または「 数字以外から数字による分割を選択するだけでOKです。

分割の方向

文字列の分割では分割方向を行方向にするか列方向にするか選択することができます。
※区切り文字による分割、文字数による分割、位置の3種のみ可能です。

設定方法としては、詳細設定オプションの「分割の方向」で「列」か「行」を選択します。


例として、下図の日付データを「/」で分割すると列分割と行分割の結果はこのようになります。対象の列以外は値がコピーされます。

文字列分割の手順

使用方法の例として、列の分割の「区切り文字による分割」を用いて下記のように「年」「月」「日」に分割します。

STEP
「列の分割」の使用
  1. 対象の列をクリックする。
  2. ホームタブの「列の分割」から「区切り文字」を選択する。※変換タブの「列の分割」でもOK
STEP
分割の設定

区切り文字と分割位置を設定します。

  1. 区切り記号で「カスタム」を選択して「/」を入力する。
  2. 分割で「区切り記号の出現ごと」にチェックをいれる。
STEP
分割完了

以上で、文字列の分割は完了です。列名はそれぞれ「年」「月」「日」に変更しています。

Sponsored link

分割機能の活用例(複数の区切り記号、改行コード)

複数の種類の区切り記号で分割

文字列データの中に複数種類の区切り文字が含まれる場合の対応方法を紹介します。

解説例として、下図のように「/」「-」が含まれたデータを分割します。

STEP
「列の分割」の使用
  1. 対象の列をクリックする。
  2. ホームタブの「列の分割」から「区切り文字」を選択する。※変換タブの「列の分割」でもOK
STEP
分割の設定

区切り文字と分割位置を設定します。

  1. 区切り記号で「カスタム」を選択して「/」を入力する。
  2. 分割で「区切り記号の出現ごと」にチェックをいれる。
STEP
M言語の修正

複数の区切り記号に対応するためにM言語の修正を行います。

数式バーの式を下記のように書き換えればOKです。

= Table.SplitColumn(ソース, "日付", Splitter.SplitTextByAnyDelimiter({"/", "-"}, QuoteStyle.Csv))
数式の意味

下記が数式の意味と設定箇所です。テーブル名、列名、区切り記号を変更すれば様々な状況に応用できます。区切り記号は2つのみではなくてカンマ区切りで追加して増やすことも可能です。

Table.SplitColumn(テーブル名, “列名“, Splitter.SplitTextByAnyDelimiter({“記号1“, “記号2“}, QuoteStyle.Csv))

また、同時に列名を設定したい場合は下記のようにも記載可能です。ただし、分割後の列分の列名が必要となります。

Table.SplitColumn(テーブル名, “列名“, Splitter.SplitTextByAnyDelimiter({“記号1“, “記号2“}, QuoteStyle.Csv), {“列名1“,”列名2“,”列名3“})

STEP
複数区切り記号の分割完了

以上で、複数種類の区切り記号の分割は完了です。「/」と「-」の両方で分割できています。
※下図は列名を「年」「月」「日」に変更しています。

改行コードで分割

改行記号での分割も「区切り記号による分割」にある「特殊文字の使用有無」を用いると可能です。

こちらの記事で詳しく手順などを解説していますので参考にしてみてください。

Sponsored link

Power Queryのおすすめ書籍

パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。

初心者向けおすすめ学習本

初中級者向けおすすめ学習本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

仕事、お金、旅行のことなどメモしてます。
仕事ではTableauを勉強中!
初心者にもわかりやすいように学んだことを発信していきます。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次