• ベストアンサー

if関数について

if関数についてどなたか教えてください。 ある二つの名簿があって、二つの名簿を照合して名寄せをしたいのですが、たとえば、A列の1行目から10行目まで、同じくB列の1行目から10行目まで氏名が入っているとします。A列とB列に同じ名前が入っていれば、C列に○印をつけるように関数を設定したいのです。自分なりに考えて、次のようにif関数を設定しました。・・・がうまく表示されません。エラーは出ませんので、関数としては成り立っていると思うのですが、○印が表示されません。どなたか間違いを指摘いただけませんでしょうか? C1のセルに次の関数を設定して、C10までコピーをしました。 if(A1=$B$1:$B$10,”○”,””) よろしくお願いいたします。

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

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

(1)こだわってif(A1=$B$1:$B$10,の部分を生かすとすれば =IF(SUM(IF(A1=$B$1:$B$10,1,0))>0,"○","") といれてSHIFT+CTRL+ENTERを押す。 その後式を下方向に複写する。 配列数式になる。 (2)MATCH関数の場合は =IF(ISERROR(MATCH(A1,$B$1:$B$10,0)),"","○") その後式を下方向に複写する。 (3)VLOOKUP関数の場合は =IF(ISERROR(VLOOKUP(A1,$B$1:$B$10,1,FALSE)),"","○") その後式を下方向に複写する。

jiijii
質問者

お礼

ありがとうございました。 No.2の方からも配列式でやったほうがいいということで、その方法をとりました。出来ました。 ただ、おっしゃる他のの方法も試してみたんですが、結果が、微妙に違うんです。いろいろ研究してみます。ご親切に感謝いたします。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

IFの条件として、セル範囲を指定することは、通常望む動作になりません、そのような時は配列式として入力します。(SHIFT+CTRL+ENTERで入力) 今回の場合は、配列式にしなくても、 (他の方法もありますが) 以下の様な方法でもできます。 =IF(COUNTIF($B$1:$B$10,A1)>0,"○","") 意味:B1~B10でA1に一致するものを数えて1以上になる時○

jiijii
質問者

お礼

ありがとうございます。 配列式でやってみましたら出来ました。

  • mendokusa
  • ベストアンサー率13% (359/2726)
回答No.1

MATCHとかLOOKUPの方がいいんじゃないですか

関連するQ&A