今回は、表記を統一したり、単位を削除したりする際に活用できる「値の置換」の使い方を詳しく説明していこう。単なる「置換機能」と捉えることもできるが、覚えておくと役に立つテクニックがいくつかある。パワークエリは「置換」を使用する頻度が意外と高いので、その使い方を細部まで学んでおく必要がある。

「値の置換」とは?

今回は「値の置換」コマンドの使い方を説明していこう。「値の置換」と書くと馴染みのない言葉に聞こえてしまうが、要は「指定した文字」を「別の文字」に置き換える置換機能のことだ。

「置換の使い方なら、すぐにマスターできるよ!」という声も聞こえてきそうだが、パワークエリにおける置換機能は意外と用途が広く、それだけに使用頻度の高いコマンドといえる。よって、自由自在に使いこなせるように、その動作を細部まで把握しておく必要がある。

  • 「値の置換」の活用例

「値の置換」を使った表記の統一

まずは、極めて簡単な例から紹介していこう。以下の図は「会員名簿」のデータを「Power Query エディター」に取得して、不要な列を削除した例だ。

今回の例では「性別」のデータが「男」または「男性」と表記されており、データに統一性がない。「女」と「女性」の表記も同様だ。

  • 表記が統一されていないデータ

表記が統一されていないと、後ほどデータ分析を行う際に色々と不具合が生じるので、どちらか一方に統一しておくのが基本だ。こういった表記の統一に活用できるのが「値の置換」となる。

今回は、表記を「男」と「女」に統一してみよう。「性別」の列を選択し、「値の置換」コマンドをクリックする。

  • 列を選択して「値の置換」をクリック

以下の図のような画面が表示されるので、「検索する値」と「置換後」の文字を指定する。今回の例の場合、それぞれに「男性」と「男」の文字を指定すればよい。

  • 「置換する値」と「置換後」の指定

「OK」ボタンをクリックすると、文字の置換が実行され、「男性」と記録されていたデータが「男」に置き換わる。その結果、データの表記を「男」に統一することが可能となる。なお、この工程は「置き換えられた値」という名前でステップに記録される仕組みになっている。

  • 「男姓」→「男」に表記を統一したデータ表

同様の手順で「女」と「女性」の表記も統一しておこう。こちらは「女性」→「女」という置換を行うと、表記を「女」に統一できる。

  • 「女性」→「女」に表記を統一したデータ表

置換機能の使い方を知っている方なら、特に難しい話は見当たらないはずだ。よって、すぐに使い方を覚えられるだろう。

もちろん、同様の手順で「スペースの半角/全角」などを統一することも可能だ。今回のデータ表は、姓と名の間に「半角スペース」または「全角スペース」が挿入されており、こちらも統一性に欠けている。

  • スペースの半角/全角が統一されていないデータ

これを「半角スペース」に統一するときは、「氏名」の列を選択して「値の置換」をクリックし、「全角スペース」→「半角スペース」と置換されるように文字を指定すればよい。

  • 列を選択して「値の置換」をクリック

  • 「置換する値」と「置換後」の指定

「OK」ボタンをクリックすると、「全角スペース」→「半角スペース」の置換が実行され、すべてのスペースを半角に統一することができる。

  • 「全角スペース」→「半角スペース」に表記を統一したデータ表

こちらも特に難しい点は見当たらないので、Excelに慣れている方なら動作の仕組みを容易に理解できるだろう。

Excelと異なる点は、「対象にする列の指定」が必須になること。Excelの場合、セル範囲を特に指定しないと“シート全体”が置換の対象になる。一方、「Power Query エディター」の場合は“選択している列”だけが置換の対象になる。よって、最初に「列の選択」をしておく必要がある。このことさえ覚えておけば、特に問題なく「値の置換」を使用できるだろう。

セルを対象に「値の置換」を活用する

続いては、少しだけ応用的な例を紹介していこう。今度は、「性別」のデータを「男性」または「女性」に統一する場合を考えてみよう。

この場合、「男」→「男性」の置換を実行しても求めている結果は得られない。というのも、もともと「男性」であったデータにも「男」の文字が含まれているからだ。この場合、「男」の文字が「男性」に置換され、さらに最初から存在していた「性」の文字が続くことになるため、データは「男性性」という文字に置換されてしまう。

  • 「男」→「男性」にデータを置換した場合

いちど「男性」→「男」に置換して表記を「男」に統一し、その後「男」→「男性」に置換する、という方法もあるが、2回も置換を行う必要があり、少し手間がかかる。

こういった場合は、“文字単位”ではなく、“セル単位”で置換するように指示してあげるとよい。「性別」の列を選択し、「値の置換」をクリックする。

  • 列を選択して「値の置換」をクリック

続いて、「男」→「男性」と置換するように文字を指定する。ここまでの操作は、先ほど示した手順と同様だ。異なる部分はオプション指定を行うこと。詳細設定オプションを開き、「セルの内容全体の照合」をONにしてから「OK」ボタンをクリックする。

  • 「セルの内容全体の照合」を指定

すると、セルを対象に「男」→「男性」の置換が行われるようになる。この場合は、データが「男」のセルだけが置換の対象になる。データが「男性」のセルは置換されないため、データが「男性性」になってしまう、という問題を回避できる。

  • セルを対象に「男」→「男性」の置換を行った例

ちなみに、同様の機能はExcelにも用意されている。Excelの場合は、置換の設定画面で「セル内容が完全に同一であるものを検索する」をONにしておくと、“セル単位”で置換を行えるようになる。

「Power Query エディター」の置換機能に話を戻そう。詳細設定のオプションには「特殊文字を使用した置換」という項目も用意されている。この項目をONにすると、“タブ文字”や“改行文字”などを置換前後の文字として指定することが可能となる。

  • 特殊文字の挿入

使い方は、「特殊文字を挿入」の一覧から特殊文字の種類を選択するだけ。すると、その特殊文字を示す記号がカーソル位置に自動入力される仕組みになっている。

データ型が「指定なし」の場合の注意点

最後に、置換機能が思い通りに機能してくれない例を紹介しておこう。今度は、ある旅館の予約状況を記録したデータ表を例に解説していこう。

このデータ表をよく見ると、ご丁寧なことに「人」の単位を付けてデータが入力されている部分があることに気付くと思う(実際には迷惑な話でしかないが……)。

  • 単位が混在しているデータ

このままでは「人数」の合計などを算出できないので、「人」の文字を削除して「数字だけ」の状態にしておく必要がある。これを置換機能で処理する場合は、「人」→(文字なし)の置換を行えばよい。

  • 「置換する値」と「置換後」の指定

これで「1人」→「1」や「2人」→「2」などの置換を行える、と思うかもしれないが、実際には上手くいかない。思い描いていたような置換は行われず、「人」の文字が残ったままの状態になってしまう。

  • 置換後のデータ表

このようにデータ型が「指定なし」の列では、置換機能が思い通りに動作してくれないケースもある。では、どうすればよいのか? このような場合は、いちどデータ型に「テキスト」を指定する必要がある。

  • データ型に「テキスト」を指定

その後、列を選択して「人」→(文字なし)の置換を行うと、「人」の文字を削除して「数字だけ」の状態に加工することが可能となる。

  • 「置換する値」と「置換後」の指定

  • 置換後のデータ表

ただし、現時点では「人数」の列に「テキスト」のデータ型が指定されているため、まだ計算不可の状態だ。計算できるようにするには、この列のデータ型を「整数」や「10進数」などに変更しておく必要がある。

  • データ型を「整数」に変更

これで「人数」の列を“数値データ”として扱えるようになる。単位が混在しているデータを扱うときに必要となるテクニックなので、こちらも覚えておくと役に立つだろう。

ちなみに、「人」の文字を残したままデータ型に「整数」などを指定すると、「1人」や「2人」などのデータがError(エラー)になってしまう。これについては第12回の連載で紹介した通りだ。よく分からない方は、第12回の連載も一読しておくとよいだろう。