• ベストアンサー

Excel2002でIF関数を使った重複調べができない

Excel2002でIF関数を使って重複データを調べています。 例えば   A  B 1 389 2 359 3 359 のとき、 B1に0を入れ、B2にIF関数で「IF=(A1=A2,1,0)」としていますが、あきらかにA2とA3は同じであるのにB3には「0」と出ます。 これは関数が反映されていないということだと思うのですが、なぜでしょうか。 数字はテキスト形式で入力してあります。 よろしくお願いいたします。

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

  • ベストアンサー
  • yuubou
  • ベストアンサー率41% (35/85)
回答No.8

回答の殆どは他の方がなさっていますので、こういうケースの盲点を… A=Bなのになぜ=IF(A=B,1,0)では結果が0なんだろうと悩むのですが よくあるケースとしては、特に比較対象が文字列の場合は気をつけて下さい。 「AまたはBの後に、ブランクが続いていませんでしょうか?」 関数は目に見えないブランクでも、異なればA<>Bと判断してしまいます。 もしそうであれば、TRIM関数を使用して、余計なブランクを削除してから 比較して下さい。 これは補足ですが、Excel等のWindowsアプリでは、文字コードはShift-JISを 使用しています。 ところが、他のコードを使用しているホストからのデータを処理しようとすると よくつまずきます。 目に見える文字は同じでも、内部コードが異なっていて、関数やマクロが正常に 処理できないのです。 (特にLOOKUP系関数を使用してテーブル検索する場合やIF系関数でハマります) その場合はChar関数(すみません、うろ覚えです)を使用して同じ文字の コードを調べてみると良いと思います。

amusemariy
質問者

お礼

回答ありがとうございます。 >「AまたはBの後に、ブランクが続いていませんでしょうか?」 まさしくそのとおりでした。スッキリしました。ありがとうございます。

その他の回答 (8)

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.9

#7さんへのお礼を見ましたが、#7さんの意図が質問者さんに伝わっていないようですので、横から補足させていただきます。 #7さんは、A2とA3が、見かけ上は同じだけど、実は違っているのではないか、と疑い(というか、質問者さんに確かめて欲しかったのだと思います)、それを確認するための関数を示してくださったのです。 そして、もしそのようにならない場合は、#8さんのおっしゃる通り、空白などが付いているから、「区切り位置」機能で空白を取り除いてください、とおっしゃっているのです。

amusemariy
質問者

お礼

補足ありがとうございます。 そこまで頭が回らなくて#8さんの回答を見て初めて気が付きました。ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.7

C1に =COUNTIF(A:A,A1) と入れて下にコピーしたらどうなりますか? C1 = 1 C2 = 2 C3 = 2 の結果が返ると思います。 ならない場合はA列の範囲を選択して、メニューのデータ-区切り位置で完了ボタン押下を試して下さい。

amusemariy
質問者

お礼

回答ありがとうございます。 C1に =COUNTIF(A:A,A1) と入れたらきちんと反映しました。 質問の場合、A1と重複するものではなく、複数の数字があってその中で重複しているものをみつけたかったので=IF(A1=A2,1,0)としました。

amusemariy
質問者

補足

papayuka さん ご回答の意味を取り違えまして申し訳ありませんでした。どうもありがとうございました。

  • daiku164
  • ベストアンサー率34% (151/437)
回答No.6

B3の関数は、、=IF(A2=A3,1,0)ですよね、 B3に=IF(A1=A2,1,0)と入れてある場合はB2と同じ結果が出ます、

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.5

??? B2の数式で、A1=A2のとき、1、それ以外は0 ですよね? これと > あきらかにA2とA3は同じであるのに は何ら関係はありませんよね? > B3には「0」と出ます。 なぜここで急にB3が出てくるのでしょうか? ■もしかして、以下の内容で疑問は解決しますか? B2に、=IF(A1=A2,1,0) → 0 B3に、=IF(A2=A3,1,0) → 1

amusemariy
質問者

お礼

回答ありがとうございます。 質問の仕方が悪かったようです。おっしゃるとおりのことです。 ありがとうございました。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.4

B2に入れた式は =IF(A1=A2,1,0) の間違いですよね?だとして、これをB3にコピーしたとき、B3は =IF(A2=A3,1,0) となりますから、等しいので1と出ますが。 僕の読み取りが間違っていたら補足してください。

amusemariy
質問者

補足

回答ありがとうございます。 そのとおりなのですが、このときB3に0と出てしまうんです。 ”を使って=IF(A2=A3,"1","0")としたら反映しました。 なぜだかよくわかりません。

回答No.3

ご質問のIF=(A1=A2,1,0)は、=IF(A1=A2,1,0)の間違いですか。 また、B3にはどのような式を入れているのですか。 ちなみにB2の式、=IF(A1=A2,1,0)をB3にコピーすると、ちゃんと1とでます。 (B2は、0です) そのうえで、 A2とA3の書式はあっていますか。 片方が値で片方が、文字式と言うことはありませんか。 ためしにA2をA3(またはA3をA2に)コピー貼り付けをしてみてください。

amusemariy
質問者

お礼

回答ありがとうございます。 コピーはしましたが、1と出ずに0と出ていました。 =IF(A1=A2,1,0)と入れても反映されなかったのですが=IF(A1=A2,"1","0")としたら反映しました。

  • miumiumiu
  • ベストアンサー率21% (715/3385)
回答No.2

すみません。かぎカッコはいりません。 =IF(A1=A2,"1","0") でどうぞ。

amusemariy
質問者

お礼

ありがとうございます。反映しました。”がないといけなっかったんですね。今まで質問のやり方できちんとできたものですからなぜだろうと悩んでいました。

  • miumiumiu
  • ベストアンサー率21% (715/3385)
回答No.1

=IF(A1=A2,"1","0")」 でどうぞ。