パワークエリでデータクレンジング: 文字列結合、0埋め、テキスト関数をマスター(5/11)

テキストデータの取り込み時には、さまざまな形式で表現されることがあります。例として、「おはよう」「おは」「(スペース)おはよう」「Hello」はすべて同じ意味を持ちます。テキストクレンジングとは、このような異なる形式の文字列を「おはよう」のように統一し、数値のように扱いやすいデータに変換するプロセスを指します。本記事では、テキストクレンジングを徹底的に学びます。

パワークエリのマスターへの道を切り拓く、全11講座を用意しました!こちらは、その第5回目の講座になります。ぜひ、他の講座も楽しみながらスキルアップを目指してくださいね 他の講座を見るにはこちら

目次

テキスト型の基本

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

テキストクレンジングの学習に入る前に、テキスト型についての基本を押さえておきましょう。

エクセルを開き、[1:データ]タブから[2:テーブルまたは範囲から]を選択してパワークエリエディターを開きます。

テキスト型データの入力

[1:列の追加]タブから[2:カスタム列]を選択します。

テキストデータはダブルクォーテーション(”)で囲みます。

新規でカスタム列が追加され、パワクエとテキストデータが入力されました。

テキスト型データの結合

続いては、テキスト型データの結合を確認してみましょう。

[1:列の追加]タブから[2:カスタム列]を選択します。

結合したいテキスト間に「&」を入れることでテキスト型データが結合されます。

以下の例では、カスタム列の式に”パワクエ” & “最高” と入力しています。

全ての列に「パワクエ最高」と追加されました。

続いて、既存の列に任意のテキスト型データを結合する方法です。

上記の説明と同様にカスタム列を新規で追加して、以下のように入力します。既存列は列名を[]で囲います。

[列1] & “パワクエ”

以下のように、既存の列1に”パワクエ”といテキスト型データが結合されました。

テキストの置換

続いてテキスト関数を用いてテキストの置換を行います。

以下の列1内のテキスト型データ「行目」を「ROW」へ置換します。

Text.Replaceという関数を用います。

使い方は、Text.Replace(対象の列,置換するテキスト,置換後のテキスト)と引数を入力します。

具体的な使い方としては、Text.Replace([列1],”行目”,”ROW”)と入力します。

1行目を見て見ましょう。2行目セルの「行目」が「ROW」で置換されています。

#sharedを使って、テキスト関数を検索して検証する

テキスト関数は無数にあります。簡単に検索できて関数の動きを検証する方法があるので説明します。

STEP
空のクエリを開く
  1. データタブの[クエリと接続]を選択
  2. [データの取得]を選択
  3. [その他のデータソースから]を選択
  4. [空のクエリ]を選択
STEP
#sharedを入力

数式バーに[= #shared]を入力します。関数の一覧が表示されます。

STEP
テキスト関数に絞る

全ての関数が出てくるので、見やすくする為にテキスト関数に絞ります。関数名(Name列)の右上の▽を選択します。

テキスト関数は、[Text.] が頭に付くので[Text.]と入力します。

STEP
関数の説明を見る

関数の説明を確認するには、対象の関数名がある行のFunctionの右側をクリックすると閲覧できます。

STEP
関数の動作を検証する。

最後に関数の動作を検証する方法です。Functionをクリックすると、実際に関数を適用するテキスト型データとその引数を入れることで関数の動作検証をすることができます。

Text.Start関数の検証

関数とその結果を確認することができます。

スペースや改行等のクレンジング

余分なスペースや改行文字を取り除く方法を説明します。

余分なスペースを取り除く

最初に文字の前後にあるスペースを取り除く方法を説明します。半角、全角、スペースの数に関係なく取り除くことができます。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
トリミングの実行

トリミング機能を利用して半角全角に関わらず余分なスペースを取り除きます。

  1. トリミング対象の列を選択します。
  2. [変換]タブを選択します。
  3. [書式]を選択します。
  4. [トリミング]をクリックします。
STEP
余分なスペースが取り除かれた

文字の前後に存在している余分なスペースが削除されました。

余分な改行を取り除く

続いて改行文字を取り除く方法を説明します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
クリーンの実行

クリーン機能を利用して余分な改行を取り除きます。

  1. 改行を取り除く対象の列を選択します。
  2. [変換]タブを選択します。
  3. [書式]を選択します。
  4. [クリーン]をクリックします。
STEP
余分な改行が取り除かれた

余分な改行が削除されました。

セル結合をデータベース形式へ変換

セル結合されていると先頭行にしか値が入らない構造となってしまいます。パワークエリでデータ変換するには、データベースの形式にする必要があります。そこで、簡単にセル結合をデータベース形式へ変換する方法を説明します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
フィルを使ってnullを置き換える

パワークエリエディタで表示すると、以下のように先頭行にのみ値が入り、後はnull表記となります。データベース形式で考えてた場合、nullだと何のことか分からないので修正します。

  1. 対象列を選択して[変換]タブを選択します。
  2. [フィル]から[下]を選択します。
STEP
データベース形式に変換された

以下のように、nullが先頭行で埋められました。

エクセルに読み込むと以下のようになります。

文字位置による、テキストの部分的な抜き出し

例えば、3文字目から3文字を抜き出したりと、任意に指定した条件でテキストの部分的な切り出しをする方法を紹介します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

最初の文字の抜き出し

頭文字から指定した文字数を抜き出す方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
最初の文字を抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [抽出]から[最初の文字]をクリックします。
STEP
文字数を指定

頭文字から抽出したい文字数を指定します。以下では、2を指定しています。

STEP
最初から指定した文字数が抽出された

2と指定したので、頭文字から数えて2文字が抽出されました。

最後の文字の抜き出し

最後の文字から指定した文字数を抜き出す方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
最後の文字を抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [抽出]から[最後の文字]をクリックします。
STEP
文字数を指定

最後の文字から抽出したい文字数を指定します。以下では、3を指定しています。

STEP
最後から指定した文字数が抽出された

3と指定したので、最後の文字から数えて3文字が抽出されました。

指定範囲での文字の抜き出し

指定した範囲で文字を抜き出す方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
抽出する文字範囲を指定
  1. 対象の列を選択して[列の追加]を選択します。
  2. [抽出]から[範囲]をクリックします。
STEP
文字数を指定

以下では、3文字目から3文字を抽出するように指定しています。開始インデックスは0から始まります。

STEP
指定した範囲で文字数が抽出された

3文字目から3文字が抽出されました。

区切り記号による、テキストの部分的な抜き出し

上記で説明した内容の応用ですが、区切り記号によるテキストの部分的な抜き出し方法を説明します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

区切り記号の前のテキストの抜き出し

指定した区切り記号より前のテキストを抜き出す方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
指定した区切り記号の前のテキストを抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [抽出]から[区切り記号の前のテキスト]をクリックします。
STEP
文字数を指定

区切り記号を指定します。以下では、@を指定しています。

STEP
指定記号より前のテキストが抽出された

@と指定したので、@より前のテキストが抽出されました。

区切り記号の後のテキストの抜き出し

指定した区切り記号より後のテキストを抜き出す方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
指定した区切り記号の後のテキストを抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [抽出]から[区切り記号の後のテキスト]をクリックします。
STEP
文字数を指定

区切り記号を指定します。以下では、@を指定しています。

STEP
最後から指定した文字数が抽出された

@と指定したので、@より後のテキストが抽出されました。

区切り記号の間のテキストの抜き出し

指定した記号の間のテキストを抜き出す方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
区切り記号の間のテキストの抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [抽出]から[区切り記号の間のテキスト]をクリックします。
STEP
記号の開始と終了を指定

区切りの開始と終了を指定します。指定した間のテキストが抽出されます。

STEP
指定した記号間のテキストが抽出された

[@]と[.]間のテキストが抽出されました。

アルファベット文字の整形

アルファベットの大文字小文字をどちらかに統一したり、頭文字だけを大文字にしたりするアルファベットの整形方法を説明します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

アルファベットを全て子文字にする

大文字と小文字が混在しているテキストを小文字に統一する方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
指定した区切り記号の前のテキストを抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [書式]から[小文字]をクリックします。
STEP
アルファベットが全て子文字になる

大文字小文字が混在していたが、全て小文字に変換されました。

アルファベットを全て大文字にする

大文字と小文字が混在しているテキストを大文字に統一する方法です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
指定した区切り記号の前のテキストを抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [書式]から[大文字]をクリックします。
STEP
アルファベットが全て大文字になる

大文字小文字が混在していたが、全て小文字に変換されました。

アルファベットの頭文字のみ大文字にする

アルファベット表記は頭文字が大文字にすることが多いですが、その方法の説明です。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
指定した区切り記号の前のテキストを抽出
  1. 対象の列を選択して[列の追加]を選択します。
  2. [書式]から[各単語の先頭文字を大文字にする]をクリックします。
STEP
アルファベットが全て大文字になる

大文字小文字が混在していたが、全て小文字に変換されました。

先頭を0埋めにする整形:Text.PadStart

0埋めが含まれているCSVデータをエクセルで開いて数値型で保存してしまい0が無くなる問題良くありますよね?0埋めを復活させる方法を説明します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
テキスト型に変換

数値型になっていると0埋めができないので、テキスト型に変換します。

  1. 列名の左側の[1.2.3]を選択
  2. メニューから[テキスト]を選択
STEP
カスタム列を開く
  1. [列の追加]タブを選択
  2. [カスタム列]をクリック
STEP
0埋めの関数を入力する

Text.PadStart関数を入力します。以下の例では、先頭8桁を0埋めするという意味です。

Text.PadStart([0埋め],8,”0″)

STEP
ゼロ埋め完成

全ての行が8桁となり、左側が0埋めになっています。

日付型を任意の日付テキストへ変換:Date.ToText

日付型を分かり易い日付の表記へ変換する方法です。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
日付型に変換する

日付型になっていないと関数が利用できないので、日付型に変換します。

列名の左側のアイコンを選択

メニューから[日付]を選択します。[日付/時刻]でも大丈夫な気がしますが、関数が使えません。

STEP
カスタム列を開く
  1. [列の追加]タブを選択
  2. [カスタム列]をクリック
STEP
任意の日付表記に変換する

Date.ToText関数を入力します。以下の例では、20221215のような表記に変換しています。

Date.ToText([日付],”yyyyMMdd”)

STEP
任意の日付表記に変換された

指定した表記に変換されました。

・その他のフォーマット例

フォーマット表記備考
yyyyMMdd20220205
yyyy/MM/dd2022/02/05
yyyy年M月d日2022年2月5日MMだと02、Mだと2
yyyy年MM月dd日2022年02月05日ddだと05、dだと5
yyyy年MM月dd日(ddd)2022年02月05日(土)dddは、曜日なし
yyyy年MM月dd日(dddd)2022年02月05日(土曜日)ddddは、曜日あり
日付表記のフォーマット例

列の値の結合:Text.Forma

列の値を結合して一つの文章を作る方法を説明します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
カスタム列を開く
  1. [列の追加]タブを選択
  2. [カスタム列]をクリック
STEP
Text.Format関数を利用する

Text.Format関数を入力します。以下の例で説明すると、#{0}#{1}#{2}が後半で定義している列名の順番です。[名前],[身長],[体重]が列名です。(使用できる列から挿入することが可能です。)

入力例:Text.Format(“#{0}の身長は、#{1}CMで体重は#{2}です。”,{[名前],[身長],[体重]})

STEP
各列が結合できた

定義した文章が作成されたました。

エクセル関数の場合、[&]でテキストを結合することができます。ただし、テキストしか結合することができません。Text.Format関数であれば、文字と数字が混在していても結合することが可能です。

文字の置換による整形

文字の置換を繰り返すことにより文字を整形していく方法を説明します。

練習用エクセルファイルのダウンロード

説明で利用するエクセルファイルをダウンロードして実際に操作をしてみましょう。

方針:以下のバラバラになっているテキストを置換を繰り返して、同じテキストに統一させます。

Power Queryは最高のツール
Power Query は最高のツール!
Power Query  は最高のツール!
STEP
パワークエリエディタを開く

パワークエリエディタを開きます。

  1. テーブル内のセルを選択して[データ]タブを選択します。
  2. [テーブルまたは範囲から]を選択します。
STEP
カスタム列を開く
  1. [変換]タブを選択
  2. [値の置換]をクリック
STEP
文字を置換する

[power Query]を[パワークエリ]に置換します。

置換されました。

STEP
全角スペースを削除する

置換する値に全角スペースを入れ、置換後は値なしにします。

スペースが消えました。

STEP
余分な記号を消す

最後に置換で余分な記号[!]を削除します。

置換する値に[!]を入れ、置換後は値なしにします。

[]が消えました。

パワークエリ学習コンテンツ

全11回の学習コンテンツでパワークエリを習得することができます。

コメント

コメントする

目次