こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルの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!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。

間違いを教えてください。
よろしくお願いします。

投稿日時 - 2009-08-26 16:26:40

QNo.5238456

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

B1に

=IF(C1=$A$1,1,2)

と式を設定し
あとはオートフイルで式をコピーすればいいと思いますが。

ご確認下さい

投稿日時 - 2009-08-26 16:51:34

お礼

ごめんなさい。
C1~C10の中で同じ文字列を参照したかったの、ちょっと違った気がします。
ありがとうございました。

投稿日時 - 2009-08-26 17:07:33

ANo.2

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の条件として組み込んで、先に書いた式のできあがり。

投稿日時 - 2009-08-26 16:43:26

お礼

なるほどーMATCH関数ですか!
きっと、文字を探す関数があるのだろうと思ってましたが、探しきれませんでした。
教えていただいた式でできました。
本当にありがとうございました!!

投稿日時 - 2009-08-26 17:04:06

ANo.1

=IF(COUNTIF(C1:C10,A1)>0,1,2)

これでどうでしょう?

投稿日時 - 2009-08-26 16:36:35

お礼

私の知っている関数でもできるのですね。
でも、これは気づきませんでした。
この式でできました!
本当にありがとうございました!!

投稿日時 - 2009-08-26 17:05:35

あなたにオススメの質問