Filter関数とCell関数の組み合わせでシート別に自動振分け

 エクセル作業の中で面倒な作業の一つが、1シートの内容を複数シートに振り分ける作業です

 この面倒な作業を、「1つのセルへの入力で複数のデータを出力するFilter関数」と「シート名を自動抽出するCell関数」を組み合わせて簡単に処理する方法を解説します!

Filter関数

今回の解説で対象とする「振り分け作業」は次のパターンです

1.あるファイルの1シートの中に、データをまとめる

2.1.のファイルの中に複数のシートを作成し、「シート名」を変更

3.2.の「シート名」にあわせて、1.のデータを振分け

上の作業は、日常的によく見られる作業だと思います

今回は、上の3.の箇所を「Filter関数xCell関数」で省力化する方法を以下に解説していきます!

では、ポイントとなる箇所を解説します!

●ポイント1⇒Cell関数とは?

Cell関数とは 、主にセルの情報を取得するための関数です

今回は、シート名を取得するために使用します

Cell関数は、あるシート上にてCELL(“fileame”)と入力すると、次のGIF画像のように「フィルパス+ファイル名+シート名」を抽出します

Cell関数

上のGIF画像では「テスト」というシート名を自動抽出しています 

シート名が常に同じ桁数であれば、RIGHT関数でシート名を抽出できます

●ポイント2⇒FILTER関数とは?

FILTER関数では次のように3つの引数を指定し、ⅰの範囲から、ⅱの条件に一致するデータを抽出します

FILTER(ⅰ.範囲、ⅱ.抽出条件、ⅲ.[省略可])

抽出範囲のデータの行数が可変であれば、抽出元のデータ範囲を事前にテーブル化しておくのがおすすめです

例えば、抽出元を以下のようにDataの名前でテーブル化しておいたとします

そして、シート別に抽出したいのは、左から2列目のカテゴリー別だとします

この場合、=FILTER(Data,Data[カテゴリー]=”aaa”)と書きます

では、

ポイントを2つ解説したところで、詳細な解説に入ります!(最後のまとめで、使用に関する注意点が1点あります)

シート名から上の画像の「カテゴリー/3桁」を抽出し、Filter関数の条件となるように数式を書くと、次の様になります

=FILTER(Data,Data[カテゴリー]=RIGHT(CELL(“filename”),3),”-“)

このようにFILTER関数を入力すれば、シート名を変えた時には、次のGIF画像のように「シート名に合うデータ」を抽出します

シート名を「CCC」 にした時、「データ」のシートからカテゴリーが「CCC」のデータを抽出しています

<まとめ>

 Filter関数は1つのセルに入力しさえすれば、条件に合う複数のデータを一括で出力してくれますので、集計作業にはとても便利です

Filter関数の条件の設定を工夫すれば、集計作業の幅を格段に広がります

なお、今回のFilter関数の使い方には1つ注意点があります

 振分けを行った2つめのシートにてFilter関数を入力した際は、1つ目のシートの内容が2つめのシートの内容に置き換わってしまいます

ですので、1つのシートでFilter関数を入力した後「値コピー」でデータの確定を行うと安全に処理を進めていくことができます

今回は以上です

 FILTER関数も含めて1つのセル入力で複数のデータ出力を行う「新関数」に興味のある方は、ぜひこちらも参照してください

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です