• ベストアンサー

エクセル関数について

A列とB列に氏名を入れてA列にあってB列にないものを取り出す為に=IFERROR(INDEX($A$2:$A$8,SMALL(IF(ISNA(MATCH($A$2:$A$8,$B$2:$B$8,0)),ROW($A$2:$A$8)-1),ROW()-1),1),"")の関数をⅮ列に入れ下にオオートフィルしたのですが、思うように表示されません。  関数が間違っているのか判りません。 何か良い方法はあれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1で言われるように、配列数式を知らずに、WEB記事。エクセル書籍などを見て、そのまま、式の文字だけ移したのだろう。 配列数式は、エクセル関数の上級のテーマなので、無理もないが、この課題そのものが、関数では、難しいのだ。 ーー 例データ A1:B8 山田 桐野 佐藤 木下 大野 太田 牛島 近藤 木村 佐藤 木下 大木 友野 大野 今川 山田 とする。 まず下記は配列数式ではない、普通の式。 D1に式 =IF(COUNTIF($B$1:$B$8,A1)=0,A1,"") と入れて、D8まで式複写。 D列は ーは空白セルを示す ー ー ー 牛島 木村 ー 友野 今川 ここまでは初心者でも思いつく。これでよいなら、問題はない。しかし、これに満足しない質問者が多い。 ーー しかし、これ(該当)を上行に詰めて表示するのが、技巧的な知識が要る.配列数式の出番だ。 E1 セルに =IFERROR(INDEX(D:D,SMALL(IF(D:D<>"",ROW(D:D)),ROW(D1))),"" Shift,CTRL、Enterキーを、同時押しする。このセルの式をE8まで複写する。 結果 E1:E4 牛島 木村 友野 今川 結果が、セル数的に、複数返るものはエクセル関数では苦手と言えようか? 配列数式を使わない回答も、待てば出るかもしれないが、多分質問者の現在の技量を超えるものだろう。 上記の2段階の2つの式を、1つの式にした(組み合わせた)ものが、質問の式になると思う。

その他の回答 (1)

  • Nobu-W
  • ベストアンサー率39% (725/1832)
回答No.1

違ってたらごめんなさいっ もしかして、HPの通りやってみたけど、できないじゃんって感じ かしら? 参考にしてるHPを見直しみて下さい その式の前後に{ }かっこが付いてませんか? それは配列数式と言って・・・説明文書くと長いので下記サイト参照 して下さい https://press.share-wis.com/array-formula-excel で先に答えですが・・・ その数式入力後Enter押す時に他に、同時に押すものがあって・・・ 『Ctrl + Shift + Enter』を押してみて下さい でもって、その式を下にそのままコピ~してやればできるかと

関連するQ&A