教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows

 

 

Excel2010-2016:データを別領域に取り出す(自動更新OK)SMALL・INDEX・ROW関数

   

 

 

 

 


 

 

 

 

 

 

 

【条件に合致したデータ一覧を別領域に抽出したい】【自動更新させたい】場合の方法をご紹介します。 (サンプルダウンロード

ここでは一例として次の関数を使って取り出す方法をご紹介します。

※ A列にあってB列にないものを取り出すならこちら

 

◆ 使う関数 ◆

  • INDEX(領域,行番号,列番号) → 領域の中で指定した行番号と列番号の交差するデータを返す

  • SMALL(領域,順位) → 領域の中で指定した順番目に小さいデータを返す

  • ROW()行番号を返す。オートフィルによって1,2,3…といった連続的な数値を数式で使える

  • 配列数式… 配列で指定するので数式入力後CTRL+SHIFT+ENTERキーを押す


▼ 例:2年生のデータ一覧を別領域に取り出す(自動更新)▼

注!実際はエラーが表示しないよう、頭にIFERROR(数式,"")を付けてオートフィルします。(ここでは長くなるので省略)

※列指定もオートフィルしたい場合はColum()-4などとします。

 

上図のように、2年生のデータ一覧を別領域に取り出す(自動更新)場合はE2に↓の式を入力しオートフィルします。

 

 

 

◆ 補足 ◆

※実際にはエラー回避のために{=IFERROR(INDEX($A$1:$C$11,SMALL(IF($A$1:$A$11="2年生",ROW($A$1:$A$11)),ROW()-1),1),"")}と入力します。

※列番号は元データの何列目を返すかを指定(学年は1)するので適宜変更します。変更せずオートフィルしたいならCOLUMN()-4とすれば1,2,3が返ります。

※配列数式なのでCTRL+SHIFT+ENTERキーで確定してください。

※条件対象とする範囲に文字が含まれているとVALUEエラーが返ることがあるので、列単位の指定ではなくセル範囲で指定しましょう。(Ctrl+Shift+↓キー)

◆ その他 ◆

※条件付きでデータを取り出す方法としてDGET関数やVLOOKUP関数などがありますが、これらは1つしかデータを取り出せません。(一覧抽出は不可能)

※DGET関数は条件に合致するデータが複数あるとエラーを返します。

※フィルタオプションを使うと簡単に条件(複数条件もOK)に合致したデータを一覧抽出できますし、関数を簡単に使えますが自動更新ができません。

※ピボットテーブルでも条件を指定してデータを取り出すことができます。

 

 

 

 

 

教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows