今回の連載から、取得したデータ表を「Power Query エディター」で加工するときの操作手順を紹介していこう。「データ表をどのように加工するか?」は目的に応じて変わってくるが、最初に「不要なデータの削除」を行うケースが多いであろう。そこで今回は「行の削除」と「列の削除」について紹介していこう。

不要な行/列を削除する工程の指定

Excelファイルやフォルダーからデータを取得できたら、次は用途に合わせてデータ表を加工していく。この際に使用するツールが「Power Query エディター」となる。一般的なExcel操作と似ている部分もあるが、Excelとは“操作手順”や“考え方”が異なる部分も多いので、「Power Query エディター」ならではの使い方を学んでおく必要がある。今回は「行の削除」と「列の削除」について紹介していこう。

  • 行と列の削除、1行目をヘッダーに

あわせて「1行目をヘッダーとして使用」コマンドで、データ行をヘッダー(列名)に昇格される方法も紹介しておこう。

列を削除するときの操作手順

まずは、操作が簡単な「列の削除」から紹介していこう。今回は、「会員名簿」のExcelファイルからデータを取得した場合を例に手順を解説していく。このExcelファイルには、ID、氏名、氏名カナ、生年月日、性別、メールアドレス、電話番号、携帯電話番号、郵便番号、住所といったデータが記録されている。

これらのうち、氏名、生年月日、性別、メールアドレスの4つだけが必要なケースを考えてみよう。この場合、他のデータを残しておいても意味がないので、最初に“不要な列”を削除しておくとよい。この処理は、以下のように操作すると実行できる。

不要な列の「列名」をクリックして列全体を選択する。このとき、「Ctrl」キーを押しながら列名をクリックしていき、複数の列を同時に選択してもよい。不要な列を選択できたら「列の削除」のアイコンをクリックする。

  • 列の選択と「列の削除」コマンド

選択していた列が削除され、以降の列が左に詰めて配置される。なお、この工程は「削除された列」という名前のステップで記録される仕組みになっている。

  • 列を削除した様子

同様の操作を繰り返して“不要な列”を削除していくと、“必要な列”だけを残したデータ表に加工できる。

これとは逆に、“必要な列”だけを選択して操作を進めていく方法もある。この場合は、“必要な列”を同時に選択した状態で「列の削除」→「他の列を削除」を選択すればよい。

  • 他の列を削除(1)

上図には「氏名」の列が表示されていないが、実際には「氏名」の列も同時選択されている、と考えて頂きたい。結果は以下の図の通り。選択していた「氏名」、「生年月日」、「性別」、「メールアドレス」の列だけが残り、それ以外の列がすべて削除される。なお、この場合は「削除された他の列」という名前でステップが記録される仕組みになっている。

  • 他の列を削除(2)

そのほか、「列の削除」や「他の列を削除」を右クリックメニューから実行することも可能となっている。

  • 右クリックメニューに用意されているコマンド

Excelに慣れている方なら「列の削除」は問題なく行えるだろう。通常のExcelと異なる部分は、「他の列を削除」というコマンドも用意されていること。こちらも便利に活用できるので、あわせて覚えておくとよい。

フィルダーを使った行の削除

続いては、“不要な行”を削除するときの操作手順を解説する。こちらは、Excelと大きく考え方が異なる部分となる。Excelのように、行番号を右クリックして「削除」を選択する、といった操作には対応していない。

パワークエリは、各列をカラム(項目、フィールド)、各行をレコード(1件のデータ)として扱う仕組みになっている。これは表計算ではなく、データベースに近い考え方といえる。よって、「行の削除」は「レコードの削除」に該当する操作となる。

このため、「X行目を削除する」といった処理は、少し例外的な指定方法と考えなければならない。X行目ではなく、何らかの条件を指定して“削除するレコード”を指定するのが基本だ。

行を削除する方法は何種類か用意されているが、よく使用するのは「フィルター」だ。簡単な例を紹介していこう。フィルターを使用するときは、各列にある「▼」ボタンをクリックする。

  • フィルターの開始

すると、その列に入力されているデータが一覧表示される。これらのうち、削除したいデータのチェックを外してから「OK」ボタンをクリックする。

  • フィルター条件の指定

上図のように指定した場合、性別が「-」または「女」の行が表から除外され、性別が「男」の行だけを残したデータ表に加工できる。

  • 「性別」が「男」のデータだけを抽出した例

このように、指定したデータ(行)だけを抽出できる機能が「フィルター」となる。「どのデータを削除するか?」というより、「どのデータを残すか?」と考えた方が分かりやすいかもしれない。

「フィルター」は通常のExcelにも用意されている機能なので、中級者以上の方なら詳しく説明しなくても使い方を理解できるだろう。これまでの連載で何度か紹介してきた「合計の行」を削除する工程も、基本的な考え方は同じである。

なお、フィルターは「条件に応じてデータを除外する機能」となるため、条件を解除することで、全データを表示した状態に戻すことも可能だ。この場合は、条件に(すべて選択)を指定して「OK」ボタンをクリックすればよい。

  • フィルターの解除

もしくは「フィルターされた行」のステップを削除し、「データを抽出する工程」そのものを削除しても構わない。「Power Query エディター」は操作の取り消し(Ctrl+Z)が効かないため、最後のステップを削除することが“事実上の操作の取り消し”に相当する。

そのほか、「数値フィルター」などを使用して、“範囲”を条件にデータを抽出(除外)することも可能だ。たとえば、日付データが入力されている列の場合、「日付フィルター」を使用できるようになる。

  • 「日付フィルター」の活用

  • フィルター条件の指定

上図のように条件を指定した場合、生年月日が「1999/12/31」より後のデータだけを抽出できる。生年月日が2000年以降のデータだけを残して、「生年月日が1999/12/31以前のデータを除外する」と言い換えることもできるだろう。

  • 「1999/12/31より後」の条件でデータを抽出した例

このように、“不要な行”を削除するときは「フィルター」を使用するのが最も一般的な手法となる。よく分からない方は、この機会に「フィルター」の使い方を学習しておく必要があるだろう。

「行の削除」コマンドの使い方

「Power Query エディター」のリボンには、「行の削除」というコマンドも用意されている。続いては、このコマンドの使い方を紹介していこう。

このコマンドは、各列の「見出し」や「データ」のほかに“余計なデータ”が入力されていた場合に活用できる。ここでは、取得元のExcelファイルが以下の図のように作成されていた場合を考えてみよう。

  • 取得元のExcelファイル

このExcelファイルからデータを取得すると、以下の図のような形で「Power Query エディター」にデータが取り込まれる。表のタイトルとなっていた「会員名簿のデータ」の文字が列名になり、それ以降の「最終更新日」や「空白行」などもデータとして扱われてしまう。

  • 「Power Query エディター」に取得されたデータ

このような場合は、最初にデータ表を整理しておく必要がある。まずは、1~2行目のデータを削除する。「データ表の上からN行」を削除したいときは、「行の削除」コマンドをクリックし、「上位の行の削除」を選択すればよい。

  • 「行の削除」コマンドから「上位の行の削除」を選択

続いて、削除する行数を指定する。今回の例の場合、上から2行分を削除したいので「2」と入力して「OK」ボタンをクリックする。

  • 削除する行数の指定

これで「データ表の上から2行」を削除できる。なお、この工程は「削除された最初の行」という名前のステップで記録される仕組みになっている。

  • 上から2行を削除したデータ表

これで1行目に「列名」となるべきデータを配置できた。続いて、これらのデータをヘッダーに昇格させる。「1行目をヘッダーとして使用」コマンドをクリックする。

  • 1行目をヘッダーとして使用(1)

すると、1行目が「ヘッダー」になり、それ以降の行が「データ」として扱われるようになる。なお、この工程は「昇格されたヘッダー数」という名前のステップで記録される。また、その直後に「変更された型」というステップも自動追加される仕組みになっている。

  • 1行目をヘッダーとして使用(2)

「変更された型」のステップは、各列のデータ型を「Power Query エディター」が自動的に判別してくれる工程だ。これについて次回の連載で詳しく解説していこう。

このように、「上からN行」といった指定で行を削除する方法も用意されている。念のため、「行の削除」に用意されている処理方法について簡単に紹介しておこう。

◆上位の行を削除
データ表の「上からN行」を削除する。

◆下位の行を削除
データ表の「下からN行」を削除する。

◆代替行の削除
「最初の行」、「削除する行数」、「保持する行数」の3つを数値で指定して、パターンに従って行を削除する。たとえば、順番に「3」、「2」、「5」と数値を指定した場合、以下のパターンで行の削除が行われる。

A:3行目から2行分を削除(3~4行目を削除)
B:次の5行分を残す(5~9行目を残す)
C:次の2行分を削除(10~11行目を削除)
※以降はBとC(5行残して2行削除する)の繰り返し

◆重複の削除
選択している列について「データが重複している行」を削除する。

◆空白行の削除
選択している列について「データがnullの行」を削除する。

◆エラーの削除
選択している列について「データがErrorの行」を削除する。

状況によっては、これらの削除方法が効果的に活用できるケースもある。ただし、そのためには、「データ型の指定」や「エラーの扱い方」ついて学んでおく必要がある。ということで、次回は「データ型の指定とエラー」について詳しく解説していこう。