• ベストアンサー

この式の誤りは?

A列の数字とC列の数字が一致するならB列に○を、一致しないのなら×を表記したいと思います。 それで、B1に次のような式を入れて下方にコピーしたのですが、B列には、セルの角に小さな三角がついてエラーになり、正しく表示されません。  =IF(COUNTIF($C$1:$C1,A1)<>0,"○","×") この関数の誤りはどこでしょうか? どこを直せば、正しい関数になるでしょうか? ご教示ください。 宜しくお願い致します。

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

  • ベストアンサー
  • pc_net_sp
  • ベストアンサー率46% (468/1003)
回答No.4

× =IF(COUNTIF($C$1:$C1,A1)<>0,"○","×") ○ B1=IF(COUNTIF($C$1:$C$10,$A1)<>0,"○","×") ○ B2=IF(COUNTIF($C$1:$C$10,$A2)<>0,"○","×") ・・・・・・ ○ B10=IF(COUNTIF($C$1:$C$10,$A10)<>0,"○","×") とりあえず、A列に10個・C列に5個で試しましたがこれで良いのでは?? A列に入れた値が、C列の1~10の中の何れかにあれば、「○」なければ「×」 比較数が増えれば、$C$1:$C$10の所の$10の数字を増やして対応 入力セル位置をC列全部にしておくなら、$C:$Cにしておけば行数は気にしなくて良い (例)B1=IF(COUNTIF($C:$C,$A1)<>0,"○","×")     

heisenberg
質問者

補足

再度のレス、有難うございます。 ご教示の式で、意図した作業が出来ました。ヾ(^ω^)  

その他の回答 (3)

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.3

エラーが出る場合はどんなエラーか書かれた方がいいですよ。 式自体には特におかしいところはないように思いますので、余計にエラーの種類が気になります。 後、この式ですとA列のデータと同じデータがC列の自行より下にあったら×になりますがいいんですか? (ということをNo.2の回答の後半で書いてます)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>この関数の誤りはどこでしょうか? 数式の論理としてエラーが起る原因はありません。 しかし、目的に合っているとは言い難いようです。 A1とC1が一致しているときB1へ"○"、不一致のとき"×"でしたら次の数式で良いでしょう。 B1=IF(A1=C1,"○","×") これを下へコピーすると次のようになります。 B2=IF(A2=C2,"○","×") B3=IF(A3=C3,"○","×") B4=IF(A4=C4,"○","×") 質問の数式では下へコピーしたとき次のようになるので正しい処理になるか否かをあなた自身が考えてください。 B1=IF(COUNTIF($C$1:$C1,A1)<>0,"○","×") B2=IF(COUNTIF($C$1:$C2,A2)<>0,"○","×") B3=IF(COUNTIF($C$1:$C3,A3)<>0,"○","×") COUNTIF関数の範囲がB列の行番号の変化に連動して広がることを知れば適否が分かります。

heisenberg
質問者

お礼

有難うございます。 No.1さんへのお礼で書きましたように、A列の数値とC列の数値は、それぞれ、「1対」1」で対応している訳ではありません。 A列の数値は「1~30」で、C列は、A列の数値のうち、10個くらいです。 そういう条件で、A列の数値30個の中にC列の10個の数値があれば、B列の該当セルに,"o"、または"x"が表示させたいのです。 多分、「$」を使って関数を書くと思うのですが・・・。

  • pc_net_sp
  • ベストアンサー率46% (468/1003)
回答No.1

IF関数だけで良いなら、 =IF(A1=C1,"o","x") だけで良いでしょう。 どうしてもCOUNTIFを使いたいなら、 =IF(COUNTIF(C1,A1)<>0,"○","×") これだけで良い筈です。 未入力を空白にしたいならIF関数2重で、 =IF(C1=0,"",IF(A1=C1,"o","x")) これは、A1から入れていく事を想定していますが・・・・ C1から入れていく場合もあるなら、IF関数を3重にすれば、A1・C1両方に入力が合った場合のみ○×を返します。      

heisenberg
質問者

お礼

有難うございます。 舌足らずで、正しい質問になっていなかったようです。 A列の数値とC列の数値は、それぞれに対応していません。 A列は「1~30」で、C列は、その30個のうち、10個くらいです。 その10個の数値が、A列の30個の中のどれかの数値と同じなら、B列の該当セルに,"o"、または"x"が表示させたい・・・。 それが本意です。

関連するQ&A