• ベストアンサー

エクセル COUNTIF 正しい重複がでない。

エクセル2007を使っています。 添付画像のようにCOUNTIFを使って重複をチェックしたいのですが、 35-1、1935-1、1935/1/1がすべて重複としてでてしまいました。 A列を文字列にしても重複となってしまいました。 解決方法はありますでしょうか。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

=SUMPRODUCT(--($A$1:$A$7=A1)) などのように計算できます。 Excel2007以降限定では =SUMPRODUCT(--(A:A=A1)) としても計算できます。 実際のデータは日付でも何でもないのにエクセルが勝手に日付に読み替えて計算してしまい,ご相談の現象が起こります。 少し古い資料ですが「修正」されていないので,下記を参考にしてみて下さい。 http://support.microsoft.com/kb/416463/ja 治っていない(直すつもりが無い)バグと見なして間違い無いと思います。

blurry66
質問者

お礼

回答ありがとうございます! 参考になりました!

その他の回答 (4)

noname#204879
noname#204879
回答No.5

》 A列を文字列にしても重複となってしまいました ホントだぁ~!Excel 2002 で試しましたが、仰るとおりですねぇ。 COUNTIF は日付形式になり得る文字列を含むものには使えない、という貴重な情報を提供していただいて、感謝します。 Excel を長年使用していますが、知りませんでした。

blurry66
質問者

お礼

ありがとうございます! 私も初めて出くわしたのでびっくりです。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

COUNTIF関数は検索値の引数を文字列にして指定する必要があります。 したがって、セルに入力すると日付などに変化するデータは、実際のデータや表示形式に関係なく、いずれも日付として認識されるために、ご質問のような状況になります。 このように、文字列が他の値になるようなケースではCOUNTIF系の関数を使うと、特殊な条件になりますが計算違いが出る可能性があります。 これを避けるには、以下のような関数で対応することになります。 ただし、この数式のデータ範囲を大きくしたり、多くのセルに入力すると再計算に時間がかかり、動きが重くなる可能性があります。 =SUMPRODUCT(($A$1:$A$100=A2)*1)

blurry66
質問者

お礼

回答ありがとうございます。 参考になりました!

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

こういうのは エクセルの 日付入力の仕組み 日付シリアル値 のことを知っているものには、当たり前で不思議ではない。エクセルの経験の少なさをしめしている。 3セルすべて1935年1月1日の日付になる。だからA7でカウントすると3件になる。 このA5:A7を範囲指定して、書式ーセルー表示形式で数にしてみてください。3セルとも12785 になり、1900年1月1日以来の実経過日数なのだ。 -や/は日付データだと解釈をされる文字である。この強制力は強く、前もって!表示形式を文字列にしてないと防げない。 -- ほかに昭和10年1月1日(と言うような日付を)と入れても質問の日付1935/1/1になる。

blurry66
質問者

お礼

回答ありがとうございます。 前もって!文字列にしても重複がでると質問欄に記載しているのですが・・・ ごもっともなアドバイスありがとうございます。

  • cider4
  • ベストアンサー率51% (640/1249)
回答No.1

そのCOUNTIFセルの範囲取りがおかしいのでは…。 ここを参考にどうぞ エクセルで重複データーをチェックするには http://allabout.co.jp/gm/gc/297702/

blurry66
質問者

お礼

回答ありがとうございます。

関連するQ&A

専門家に質問してみよう