FILTERで行と列を同時に絞り込んで抽出する方法|必要な列だけ取り出す

FILTERで行と列を同時に絞り込んで抽出する方法|必要な列だけ取り出す

FILTER関数を使えば、数式の確定と同時に複数列の条件を満たすデータを抽出できる。ただし、引数[配列]には1つのセル範囲しか選択できない。条件を満たす離れた複数列のデータを抽出するなら、1つ目のFILTER関数で条件抽出したデータをもとに、2つ目のFILTER関数で、抽出する列見出しが表の列見出しにあるかどうかを条件に抽出しましょう。

目的

必要な列・行数抽出

使用する関数

FILTER関数、COUNTIF関数

目次

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

例題1|性別で行を、見出しで列を絞り込んで抽出する

  1. データを求めるセル(A6セル)を選択し、「=FILTER(」と入力する。
  2. [配列]…もう1つのFILTER関数で「性別」がA3セルの「男」の条件でデータを抽出する数式を入力する。
  3. [含む]…COUNTIF関数で抽出するA5セル~B5セルの列見出しが表の列見出しにある個数を求める数式を入力する。
  4. [空の場合]…省略して、「Enter」キーで数式を確定する。
A6に入力:行と列の両方を絞り込む
数式=FILTER(FILTER(A9:D11,B9:B11=A3),COUNTIF(A5:B5,A8:D8))
ひとことで性別で行を、見出しで列を絞り込む
A9:D11
元の表です
B9:B11=A3
性別がA3と同じ行を残します(内側のFILTER)
COUNTIF(A5:B5,A8:D8)
見出しが、A5:B5に書いてある列は 1、ない列は 0 です。1の列だけを残します(外側のFILTER)
補足結果は A6:B6 に広がります(スピル)。取り出す列は、見出しを書き換えるだけで変えられます。
使用するExcel関数

FILTER関数、COUNTIF関数

数式の解説

「COUNTIF(A5:B5,A8:D8)」の数式は、抽出する「氏名」「電話番号」が表の列見出しにある場合は「1」、無い場合は「0」を求める。FILTER関数の引数[含む]に組み合わせることで、「性別」が「男」の条件で抽出されたデータから、「氏名」「電話番号」だけが抽出される。

Excelデータダウンロード

以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample1.xlsx

応用1|取り出す列を {1,0,0,1} で直接指定する

使用するExcel関数

FILTER関数、COUNTIF関数

Excelデータダウンロード

以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-application1.xlsx

個数を数える関数(COUNT・COUNTIF系)の使い分けは、こちらのまとめで整理しています。

応

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次