この場合、どうしたら良いですか?
では、詳細を解説していきますね。
目次[閉じる]
解説動画
この記事の内容は下記の動画「【パワークエリ#6】データクレンジング基本テクニック13選 – 元データを綺麗にするための不備修正の作業を自動化する」でも解説しています。
コメント欄の目次の時間部分をクリックすると該当の解説へジャンプできますよ!
はじめに
この記事はパワークエリの概要を把握していることが前提です。
パワークエリの概要は以下の記事をご参照ください。
「フィルター」とは、Power Queryエディター上で条件に一致したレコードを保持し、それ以外を削除する機能
フィルターは、クエリの新規作成ステップのうち、Step 2の「取得データを整形/加工(Transform)」に該当する機能です。

クエリ内の一連の整形作業の中で、表の不要なレコードを削除したい場合にフィルターを使いましょう。

フィルターの活用により、Power Queryエディター上で任意のフィルター条件に一致したレコードを保持し、それ以外のレコードをすべて削除できます。
ワークシート上のフィルターと異なり、Power Queryエディターのフィルターで非表示にしたレコードは削除したと見なされ、Step 3の処理結果のテーブル側には表示されない。
一例として、「カテゴリ」列を対象にフィルターを使用し、「フルーツ」に等しくないレコードのみを残し、それ以外を削除したものが以下です。

この通り、Power Queryエディター上で不要なレコードを削除したステップを記録できました。
フィルターの場合、デフォルトのステップ名は「フィルターされた行」になる(クエリ内で2つ目以降の「フィルターされた行」ステップは連番が付加)。
後は、クエリ新規作成ステップのStep 2とStep 3を行いましょう。
これにより、クエリに記録したフィルターのステップを自動化できます。
「フィルターされた行」ステップを記録後、対象の列名を変更すると、クエリ更新時にエラーになるため注意(対処法は後述)。
クエリの新規作成ステップのStep 2に役立つ各種コマンドや、Step 3の手順の詳細を知りたい方は、パワークエリの概要記事をご参照ください。
【Excel】パワークエリ(Power Query)とは?できることや使い方入門【動画あり】
「フィルター」の使用手順
フィルターは、以下の手順で使用します。

- フィルター条件を設定したい列のフィルターボタンをクリック
※今回は「カテゴリ」列 - テキストフィルター or 数値フィルター or 日付フィルター等をクリック
※今回は「テキストフィルター」 - 任意のフィルター条件を選択
※今回は「指定の値と等しくない」 - 任意の基準値を入力 or 選択
※今回は「フルーツ」 - 「OK」をクリック
手順②~④は、今後手順①の列に新たな値(アイテム)が追加されても問題ないフィルター条件を設定すること。
手順②~④をチェックボックスで設定した場合、チェックONにしたアイテムに対して「指定の値に等しい」という条件が設定されたとみなされる。
手順②は、手順①の列のデータ型によって表示されるフィルターの種類が変わる(詳細は後述)。
手順④を選択したい場合、ボックス右側の「▼」をクリックすることで、既存のアイテムを選択可能。
フィルター条件を複数条件にしたい場合、手順④のタイミングで「および」or「また」を選択し、下側の条件も設定すること。
「行のフィルター」ダイアログの種類
フィルターの使用手順②のフィルターの種類は、手順①の列のデータ型によって変化します。
データ型別の詳細は以下の通りです。
テキストフィルター
データ型が「テキスト」、または指定されていない場合は、「テキストフィルター」です。

- 指定の値に等しい
- 指定の値と等しくない
- 指定の値で始まる
- 次の値で始まらない
- 指定の値で終わる
- 次の値で終わらない
- 指定の値を含む
- 指定の値を含まない
数値フィルター
データ型が「10進法」、「通貨」、「整数」、「パーセンテージ」の場合は、「数値フィルター」です。

- 指定の値に等しい
- 指定の値と等しくない
- 指定の値より大きい
- 指定の値以上
- 指定の値より小さい
- 指定の値以下
- 指定の値の間
日付/時刻フィルター
データ型が「日付/時刻」の場合は、「日付/時刻フィルター」です。

- 指定の値に等しい
- 次の値より前
- 次の値より後
- 指定の値の間
- 次の
- 前の
- 最も早い
- 最も遅い
- 最も早いものではない
- 最も遅いものではない
- 年
- 四半期
- 月
- 週
- 日
- 時
- 分
- 秒
- カスタムフィルター
日付フィルターと同じ条件(演算子)。
日付フィルター
データ型が「日付」の場合は、「日付フィルター」です。

- 指定の値に等しい
- 次の値より前
- 次の値より後
- 指定の値の間
- 次の
- 前の
- 最も早い
- 最も遅い
- 最も早いものではない
- 最も遅いものではない
- 年
- 四半期
- 月
- 週
- 日
- 時
- 分
- 秒
- カスタムフィルター
時間フィルター
データ型が「時刻」の場合は、「時間フィルター」です。

- 指定の値に等しい
- 指定の値と等しくない
- 指定の値より大きい
- 指定の値以上
- 指定の値より小さい
- 指定の値以下
- 指定の値の間
- 最も早い
- 最も遅い
- 最も早いものではない
- 最も遅いものではない
日付/時刻/タイムゾーンフィルター
データ型が「日付/時刻/タイムゾーン」の場合は、「日付/時刻/タイムゾーンフィルター」です。

- 指定の値に等しい
- 次の値より前
- 次の値より後
- 指定の値の間
- 次の
- 前の
- 最も早い
- 最も遅い
- 最も早いものではない
- 最も遅いものではない
- 年
- 四半期
- 月
- 週
- 日
- 時
- 分
- 秒
- カスタムフィルター
日付フィルターと同じ条件(演算子)。
期間のフィルター
データ型が「期間」の場合は、「期間のフィルター」です。

- 指定の値に等しい
- 指定の値と等しくない
- 指定の値より大きい
- 指定の値以上
- 指定の値より小さい
- 指定の値以下
- 指定の値の間
数値フィルターと同じ条件(演算子)。
論理フィルター
データ型が「True/False」の場合は、「論理フィルター」です。

- 指定の値に等しい
- 指定の値と等しくない
【参考】「行のフィルター」ダイアログの詳細設定
「行のフィルター」ダイアログに用意されている「詳細設定」を活用すると、応用的なフィルター条件を設定できます。
具体的には、フィルター条件の要素を2つの観点で増やすことが可能です。

「行のフィルター」ダイアログの詳細設定を活用することで、複数列を対象としたフィルター条件も1ステップで実現できます。
高度なフィルター条件を設定したい場合は、こちらで設定してください。
「フィルターされた行」ステップの変更手順
フィルターで記録した「フィルターされた行」ステップを後から変更する場合、以下の手順で変更しましょう。

- 「フィルターされた行」ステップの歯車マークをクリック
- 任意のフィルター条件を再設定
- 「OK」をクリック
手順①のステップ名は、フィルターのデフォルトの名前(自身でリネームしている場合は別表記)。
手順①はステップ名をダブルクリックでもOK。
フィルターの対象列を変更したい場合、手順②で「詳細設定」を選択し、該当の条件の「列」ボックスを変更する。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_PowerQueryデータ整形_フィルター.xlsx
ブックを開いたら、「商品マスタ(フィルター)」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。
- フィルター条件を設定したい列のフィルターボタンをクリック
※今回は「カテゴリ」列 - テキストフィルター or 数値フィルター or 日付フィルター等をクリック
※今回は「テキストフィルター」 - 任意のフィルター条件を選択
※今回は「指定の値と等しくない」 - 任意の基準値を入力 or 選択
※今回は「フルーツ」 - 「OK」をクリック
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
フィルターの活用により、Power Queryエディター上で任意のフィルター条件に一致したレコードを保持し、それ以外のレコードをすべて削除できます。
データ整形時はもちろん、複数のシートやブックのデータ取得時にも活用する機会は多いため、エディター上の基本操作の1つとしてしっかり理解しておきましょう!
なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。
ご参考になれば幸いですm(_ _)m
たとえば、重複レコードを削除する「重複の削除」コマンドや、表の上下の不要な行を削除する「上位の行の削除」・「下位の行の削除」コマンドです。
不要な行/列のデータは早めに削除することで、データ量を最小化でき、後続の他の整形作業や、集計/分析の作業効率も上がりますよ!

コメント Comments
コメント一覧
コメントはありません。
トラックバックURL
https://excel-master.net/data-shaping/power-query-filter/trackback/