- 締切済み
エクセルのif関数で
エクセルのif関数でこれができるのかわかりませんが、 C1~C10の中の文字列の中にA1と同じ文字列があればB1に「1」を入れ、なければ「2」を入れるということをやりたくて B1のセルに IF(OR(C$1:C$10=A1),1,2) という計算式を入れました。 関数の引数の中の数式の結果では、正しい結果が表示されてるのですが、B1のセルには間違った結果が表示されます。 また、B2以下B20まで計算式をコピーするとB11以下は#VALUE!になってしまいます。 一つ一つを見てみると、どうやらセルに正しく表示されるのはAの行とCの行が=だった場合のみのようです。 #VALUE!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。 間違いを教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Us-Timoo
- ベストアンサー率25% (914/3620)
B1に =IF(C1=$A$1,1,2) と式を設定し あとはオートフイルで式をコピーすればいいと思いますが。 ご確認下さい
- zongai
- ベストアンサー率31% (470/1474)
OR関数の認識が間違っているようですね。 間違い指摘は他の方にお任せして… ※SAMPLE =IF(ISERROR(MATCH(A1,C1:C10,0)),2,1) 同一の文字を探す方法としてMATCH関数を使用。 MATCH(A1,C1:C10,FALSE) [C1:C10]で A1 の内容と完全一致(FALSEで完全一致)同じ物を探す。 あれば、何番目にあるのかを返す。無ければ「#N/A」(つまりエラー)となる。 A1 と同じ物があれば「1」、無ければ「2」ということで、MATCH関数の結果と置き換えて言い直せば エラーなら「2」、そうでなければ「1」を返すということになるので、 エラー判別するISERROR関数を用いる。 IFの条件として組み込んで、先に書いた式のできあがり。
お礼
なるほどーMATCH関数ですか! きっと、文字を探す関数があるのだろうと思ってましたが、探しきれませんでした。 教えていただいた式でできました。 本当にありがとうございました!!
- nattocurry
- ベストアンサー率31% (587/1853)
=IF(COUNTIF(C1:C10,A1)>0,1,2) これでどうでしょう?
お礼
私の知っている関数でもできるのですね。 でも、これは気づきませんでした。 この式でできました! 本当にありがとうございました!!
お礼
ごめんなさい。 C1~C10の中で同じ文字列を参照したかったの、ちょっと違った気がします。 ありがとうございました。