教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows

 

 

Excel:A列にあってB列にないものを取り出す (サンプルファイル付)

 

 


  

 

  

 

 

■ A列にあってB列にないものを別領域に取り出す(サンプルファイル

 

方法1:関数(メリット:数式を1度設定すれば自動更新して抽出)

方法2:フィルタオプション(メリット:操作が簡単(デメリット:データ更新時に再操作))


 

■方法1:関数で抽出(INDEX,SMALL,ISNA,ROW)

サンプルファイルを参考にしましょう。A列にあってB列にないデータを取り出します。

 

D1に式を入力し、Ctrl+Shift+Enterキーを押して(配列数式)オートフィル します。

{=INDEX(A:A,SMALL(IF(ISNA(MATCH(A:A,B:B,0)),ROW(A:A)),ROW()),1)}

※0を表示させたくない場合はこちら

関数の意味】

MATCH(A列,B列,0)A列を検索値としてB列を検索し位置を返す。B列にない場合は#N/Aエラーを返す。

ISNA(MATCH())…MATCH関数#N/AエラーならTRUEを返す

IF(ISNA(),ROW(A列))…ISNA関数TRUEならA列の行番号を返す

SMALL(IF(ISNA(MATCH…)),ROW())…行番号を小さい順に返す

INDEX(A列,行番号,1)…上記関数を行番号に引き渡す=行・列の交差する値を返します。

 

★ 関数紹介 ★

★MATCH(A列,B列,0) … A列を検索値としてB列範囲を探し、なければ#N/Aエラーが帰ります。

★ISNA(式) … 結果が#N/AエラーならTrueを返します。今回はエラーならA列の番号を取得します。

★INDEX(配列) … 指定された行と列の交差する値を返します。

 

■方法2:フィルタオプションを使う

 

C列に条件式を入力し、D列にTrueの場合の結果を抽出します。

  1. C2に条件として=Isna(Match(A2,B:B,0))を入力
    → これはA2を検索値としてB列にマッチすれば配置を出し、なければNAエラーを返します。ISNA関数はNAエラーならTrueを返すので、Trueの場合(Bにない)に値を取得することになります。
     

  2. D1を選択し「データ」→「並べ変えとフィルター」にある「詳細設定」をクリック

  3. リスト範囲 →A列(A1:A5)
    検索条件範囲→C2の数式と、その上の空白セル(C1)を選択(C1:C2)
    抽出範囲→抽出先を「指定した範囲」としてD1を指定して「OK」をクリック

→ D1に取得できます。

 

※ フィルタオプションについてはこちらもどうぞ。

 

 

 

 

 

教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows