• ベストアンサー

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")」 でどうぞ。

関連するQ&A

  • Excel2003でif関数を使うとSUM関数で反映されません

    A1セルに金額を入力すると、B1に1と表示させる為に=IF(A1,"1","")といった数式を入れております。 さらにC1にBセルの合計値を表示させる為に=SUM(B1)C2には=SUM(B1:B2)と入力しているのですが、B列のセルにIF関数を使った数字『1』が表示されてもC列セルに反映されないので困っています。 ここで質問ですが、A列セルに金額が入力されるとB列セルに数字『1』が表示され、更にC列セルにB列セルの合計値が表示される様な関数等はありますでしょうか?解り難い説明ですいません。 因みにA、B、C列共に1~31までのセルがあります。

  • Excel2000の関数

    Excel2000での関数についてご質問いたします。 ある数字が入力されたとき その数字が1~100までの数字ならA1に15000を出力 それ以外の数字ならA1に150/60などの数式結果を出力 みたいな関数があるのでしょうか? IF関数と何かの組み合わせになるのでしょうか? よろしくお願いいたします。

  • エクセル 重複データの検索(COUNTIF関数!?)

    A列とB列で、重複しているデータ(数字)を検索するための関数を教えて下さい。 確か、こんなような↓関数だったと思うのですが、ちょっと違うようです。 C2=IF(COUNTIF(A2,B1:B2377),"","×")

  • Excel関数

    Excel2010を使用しています。 A~E列 及び H~K列の1,000行目くらいまで、1ケタから5ケタの数字を入力しています。 重複した数字がないか確認したいのですが、適した関数はありますか? (重複していた場合、指定したセルに「重複」と出るような関数など) セルは空欄の場合もあります。 ご教示いただければ幸いです。よろしくお願いします。

  • IF文の重複の表示

    A列には数字が入力されています。重複している場合は =IF(COUNTIF(A:A,A2)>1,"重複","") となるようにしました。ここまではわかったのですが A列に数字以外で”なし”と表示する場合があり、 上記プラスアルファ、A列になしがあって重複している場合は 重複と表示したくないのですが、関数で作成できるものなのか できるとしたらどのようにすればよいのか教えてください。 宜しくお願いいたします。

  • エクセルIF関数について

    エクセルIF関数について エクセルのIF関数を利用して、重複するデータを抽出したいと思っています。 エクセルのIF関数を利用したことがないため、別の対応策があれば そちらも教えていただけませんでしょうか・・ 宜しくお願いいたします。 下記のようにA列に入っている1,2,3,4,5があり重複しているものをD列に一つにまとめ重複している1、5の合計分と重複していないものをEに表示させたいと思っています。     A  B     D   E 1  1  123    1  249 2  1  3      2  3 3  1  123    3  345 4  2  3      4  234 5  3  345    5  1665   6  4  234     7  5  555 8  5  555 9  5  555 D1、E1にはどのような関数で対応するのが適しているのでしょうか?

  • IF関数とMIN

    B1のセルに20以上の数字が入力された場合、C1にIF(AND~)と関数を入力し20までにしかならないようにしました。 そして、D1のセルにはB1とC1の小さいほうの数字が自動的に入るようにしたいのですが、MIN(B1:C1)としてもB1の数字しか反映されません。 説明がわかりにくいとは思いますが、解決法をお願いします。

  • Excel2003 IF関数

    シート1のA列に値を入力して行き、終了したら同じようにシート2のA列に値を入力して行きます。 この時、シート1に入力した値とシート2に入力した値は同じでなければなりません。 シート2は再チェック用なので、シート1と値が異なる入力をした場合、 値を入力するセル(A列)の隣のセル(B列)に、 IF関数、真の場合『OK』・偽の場合『入力エラー』と反映されるようにしております。 =IF(B1=seat!B1,"OK","入力エラー") 『OK』の場合は表示させる必要は無いので、条件書式を使用し、 フォント色を白くして、表示させないようにしております。 ただ、シート1を入力してからシート2に入力を始めるため、 シート2のB列には既にに『入力エラー』の表示がでてしまっています。 ※値を入力しないセルもあるのでその場合は『OK』が表示されますが、 条件書式によりフォント色を白くしておりますので、表示されません。 シート2には何も入力をしていないので、『入力エラー』と表示されるのは当然なのですが、 シート2に値を入力してから、シート1,2で異なる値の場合だけ『入力エラー』と表示されるのが理想です。 IF関数はこのような場合適していないのでしょうか? 何か良い方法がございましたらご教示頂けますと幸いです。 宜しくお願い致します。

  • EXCEL関数について

    EXCEL関数について EXCEL2003を使用しております。 お知恵を拝借願います。 「りんご」、「いちご」、「なし」は「グループ1」 「バナナ」、「メロン」は「グループ2」というように、 果物を20個のグループに分けます。 それぞれのグループの果物は、1個から10数個まで様々です。 Sheet2、A列、A2~A100セルに果物名、 Sheet2、B列、B2~B100セルにグループ番号(1~20)がランダムに入力されています。 ここで、Sheet1のA2セルに「りんご」と入力すると、 Sheet1のB2セルにグループ番号「1」が返せるような関数はありますでしょうか? 「VLOOKUP」で試してみたのですが、数字ではなく果物名から検索したいのと、 数字が重複しているので使えないことに気付きました・・・。 何卒ご教示頂きたく宜しくお願い致します。

  • Excel2007の関数について

    Excel2007の関数について教えてください。 A     B      C     D いいえ  いいえ 人参 1 はい   いいえ   キャベツ 2 はい   はい    大根    3 1番目にAの欄を入力。 2番目にBの欄を入力。 AとBを入力した時にCとDの項目が上記 表のように自動で反映されるようにしたいと思います。 どのような関数を使用すればいいでしょうか。

専門家に質問してみよう