Microsoft Excel でフィルターされた結果セットの列を制限する方法 - TechRepublic

Microsoft Excel でフィルターされた結果セットの列を制限する方法 - TechRepublic
列数制限 - フィルタリング結果 - Excel
画像: 200degrees/Adobe Stock

Microsoft Excelでレコードをフィルタリングするのは簡単で、指定した条件に一致するレコード全体が表示されることに慣れています。しかし、フィルタリングされた結果セットの列数を制限する方法がわからないかもしれません。Excelの単純なフィルターでは、ソースデータ自体をフィルタリングするため、制限することはできません。

参照: 誰もが知っておくべき Windows、Linux、Mac のコマンド (無料 PDF) (TechRepublic)

ただし、高度なフィルターを使用すると、レコードだけでなく列も絞り込むことができます。Excelの高度なフィルター機能を使用して、2つの列の条件に基づいてフィルターされたセットを返す方法を説明します。次に、フィルターされたセットをその2つの列のみに制限する方法を説明します。

Windows 10 64ビットシステムでMicrosoft 365デスクトップを使用していますが、以前のバージョンでもご利用いただけます。ご参考までに、デモ用の.xlsxファイルと.xlsファイルをダウンロードしていただけます。Web版Excelは高度なフィルター機能をサポートしていません。

Microsoft Excelの高度なフィルターについて

Excelの高度なフィルター機能は、フィルターオプションと値のドロップダウンリストを使用しません。シートレベルで条件を入力すると、フィルターされたセットが別の場所にコピーされるか、ソースデータがフィルターされます。

この機能には 3 つのコンポーネントが必要です。

  • ソース データ: フィルターするデータです。
  • 条件: ソース データと一致させる値です。
  • 場所: これにより、その場でフィルタリングしたり、フィルタリングされた結果を別の場所にコピーしたりできます。

Excelの高度なフィルターを使用すると、複数の列に条件を指定できます。シンプルなフィルター機能でも同様のことが可能ですが、条件は一度に1列ずつ指定する必要があります。高度なフィルターを使用すると、データセット内のすべての列に同時に条件を指定できます。さらに、高度なフィルターを使用することで、より複雑な条件を指定することもできます。

ここで、高度なフィルターを使用して、フィルターされた結果セット内のすべての列を返してみましょう。

Excelで高度なフィルターを使用する方法

それでは、図Aに示す「Commission」テーブルを使った簡単な例を見てみましょう。名前がMで始まり、かつ手数料が250ドル未満の従業員のレコードをすべて表示したいとします。さらに、ソースデータをフィルタリングするのではなく、フィルタリングした結果を別の場所にコピーしたいとします。

図A

ExcelAdvFilterCol_A
画像: Susan Harkins/TechRepublic。このデータセットには高度なフィルターを使用します。

すでにソース データがあるので、条件と場所を追加しましょう。

  1. 図Bに示すように、ヘッダー行を別のシートに2回コピーします。別のシートでこれを行う必要はありませんが、簡単に行うことができます。
  2. セル D3 (人事列) に条件文字列 M* を入力します。
  3. セルF3(Commission列)に条件文字列「<=250」を入力します。2つの条件式が同じ行にあるため、ExcelはフィルターをAND演算として扱います。フィルターは、Personnelの値がMで始まり、かつCommissionの値が250以下のレコードを返します。OR演算を実行するには、条件式の1つを次の行に入力します。

図B

ExcelAdvFilterCol_B
画像: Susan Harkins/TechRepublic。基準と場所の範囲を準備します。

条件が表現され、両方のヘッダーが配置されたら、高度なフィルター機能を実行してみましょう。

  1. 条件と場所のヘッダーを含むシートタブをクリックします(図B)。デモファイルでは、そのシート名は「Results」です。アクティブなシートは場所シートである必要があります。
  2. [データ] タブをクリックし、[並べ替えとフィルター] グループの [詳細設定] をクリックします。
  3. 表示されるダイアログで、図Cを参考に、ソースデータ、条件、結果セットの保存場所を指定します。各範囲を設定するには、コントロールの右側にある矢印をクリックします。次に、ヘッダーを含む範囲を選択し、ダイアログ内の矢印をクリックしてダイアログ全体を展開します。ソースデータを強調表示するには、まずシートタブをクリックする必要があります(デモファイルでは、そのシート名は「Data」です)。条件を設定する際は、行3と行4を含めてください。コピー先の場所範囲は行3です。
  4. [OK]をクリックします。

図C

ExcelAdvFilterCol_C
画像: Susan Harkins/TechRepublic。高度なフィルター設定。

フィルタリングされた結果セットがないので、何が問題なのか疑問に思うかもしれません。しかし、何も問題はありません。ソースデータをよく確認すると、条件を満たすレコードがないことがわかります。

条件を少し変えて、どうなるか見てみましょう。F3キーで、等価演算子「<=」を「>=」に変更し、フィルターを再度実行します。Excelは、対象範囲が十分ではないという警告を表示します。「はい」をクリックして続行してください。結果セットを格納するのに十分なスペースがあります。図Dに示すように、条件を満たすレコードが4件あります。

図D

ExcelAdvFilter_D
画像: Susan Harkins/TechRepublic。C3とE3の条件式を満たすレコードは4件あります。

ご覧の通り、この機能は少し準備が必要ですが、実行は簡単で、結果も印象的です。ただし、結果セットにはレコード全体が表示されるので、列を制限してみましょう。

Excelの高度なフィルターを使用して列を制限する方法

高度なフィルターによって返される列を制限するのに、特別な操作は必要ありません。表示したい列に合わせてヘッダーセルを変更するだけです。図Eは、 N2:O2の新しいヘッダー行を示しています。

図E

ExcelAdvFilterCol_E
画像: Susan Harkins/TechRepublic。列数を減らすには、ヘッダーセルの数を減らします。

先ほどと同じように高度なフィルターを実行しますが、今回はコピー先範囲としてN2:O2を指定します(図E)。結果セットは図Fのようになります。行は4つですが、列は2つだけです。ヘッダーセルを減らすことで、結果セットにコピーされる列数を減らすことができます。

図F

ExcelAdvFilter_F
画像: Susan Harkins/TechRepublic。「コピー先範囲」を選択すると、返される列の数が2つに減ります。

必要な列のみをフィルターされた結果セットにコピーすることはフィルターと同じではありませんが、必要なデータのみを操作できるようになります。

Tagged: