Excel。横長の表から必要な列だけを手早く抽出するにはどうしたらいい
<FILTER+COUNTIF関数>
横長の表から、必要な列だけを抽出するとなると、なかなか面倒です。
今回は、4月から6月の売上列を抽出した表をつくりたいわけです。
サンプルなのでデータ量が多くありません。
このような場合、コピペで対応できるとは思いますが、データ量が多い場合、列を選択するだけでも大変です。
そこで、FILTER関数とCOUNTIF関数を組み合わせるだけで、手早く、抽出した表をつくることができます。
では早速やってみましょう。
事前準備として、抽出したい列の見出し行を用意します。
A7:E7に抽出したい見出しを用意しました。
A8に次の数式を設定します。
=FILTER(A2:H5,COUNTIF(A7:E7,A1:H1))
これだけで、抽出することができました。
FILTER関数は、スピル機能対応なので、オートフィルで数式をコピーする必要はありません。
これで、完成しました。
では、この数式を確認しておきましょう。
FILTER関数は、抽出する関数です。
最初の引数は、「配列」。データなので、A2:H5を範囲します。
見出しは不要です。
2つ目の引数は、「含む」。
条件です。
この引数に、1行の配列を指定すると、列の抽出を行うことができます。
そこで、COUNTIF関数をつかって、用意した見出しと一致したら「1」と算出されてます。
1となった列が抽出されるという仕組みです。
それでは、データタブの「数式の検証」をつかって確認してみます。
数式の計算ダイアログボックスにある検証ボタンを2度クリックします。
COUNTIF関数の結果を見ると、用意した見出しのところが「1」になっていることが確認できます。
ただし、この数式には、欠点があります。
左から同じ順番でないと、抽出することができません。
6月売上,5月売上,4月売上 というように、順番を変更してしまうと、抽出はされますが、見出しと合致しないデータになってしまいます。
このように、FILTER関数とCOUNTIF関数を組み合わせることで、手早く指定した表を抽出することができます。