• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答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/17068)
回答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

  • Excel 2007 重複データのチェックについて

    Excel 2007 重複データのチェックについて A列にあるデータ(約100件)で重複している値がある 行についてB列にフラグをつけます。 やりたいことはどの行とどの行が重複しているのかを すぐに分るようにしたいです。 添付画像のように重複している行に番号をつけていくことは可能でしょうか。 番号は1から順番に増えていきます。 自分は下記を考えましたが、これでは重複している行に「重複データ」と入る だけでわかりづらいです。 =IF(COUNTIF($A$2:A2,A2)>1,”重複データ”,”○”) よろしくお願いいたします。

  • エクセルでコピペの場合重複データがわからない

    こんにちは。 エクセルについて質問です。 コピーして一行の列に文字をずらーっと ペーストしていくのですが、 重複した文字は削除したいのです。 =MATCH(A65534,A:A,0)=ROW() や =COUNTIF(A:A,A1)=1 を試してみているのですが、 自分で入力したときにしかチェックされません。 コピペの場合、そのまま同じ文字でもペーストされてしまいます。 これらの関数も、先ほどようやく サイトで調べて試したくらいのほぼ初心者なのですが、 コピペの場合は、重複文字チェックは不可能でしょうか。 それとも何らかの方法があるのでしょうか。 ちなみに、フィルタで重複文字を抽出するやり方がありますが、 あとからデータが追加されるため、この方法は適しません。 どなたかわかるかたがいらっしゃいましたら よろしくお願いいたします。

  • 同列にある重複文字列のチェック方法

    Googleスプレッドシート上で同列にある文字列の重複をチェックする方法として、隣のセル(B列)に「=COUNTIF(A$2:A$999;A4)>1」と書く方法を使っています。この方法を使うとA列に重複した文字列を入力すると、重複した文字列横のB列にTRUEと表示されます。 しかしこのやり方だとA列に文字列を入力後、B列もエクセルで言うオートフィルみたいなことをしなければならず面倒なので、スクリプトで重複チェックできないものかと考えています。 ですがJavaScriptは初心者なので書き方が分からず苦戦中です。どなたか、手がかりとなるスクリプトやヒントをご教示いただけませんでしょうか。

  • エクセルでデータの「どこで重複か」を見つける

    エクセルでデータが「どこで重複しているか」を見つける方法として 以前質問した際に教えていただいたのが B1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",IF(COUNTIF(A$1:A1,A1)<=1,"","重複No."&COUNT(A$1:A1,A1))) これで重複があれば上の行から数えてその行のA列に有るデータが何番目の重複であるかがB列に表示されます。 ということでしたがこれには漏れがありました。 =IF(A1="","",IF(COUNTIF(A:A,A1)<=1,"","重複No."&COUNT(A:A,A1))) とすると漏れはありませんが、No.はすべて「0」となるのです。 何番目の重複かが分かる方法はありませんか。

  • エクセルのcountif関数で

    WindowsXPでEXCEL2003を使っています。 A列に固有名詞が入っており、 A列の中でのダブりチェックをcountif関数を使って、 実行しました。式は =countif($A$1:A7,A1) というような感じです。 ところが、見た目は全く変わらないのに、 (下記の図でいうと、「りんご」) 返ってきた数字は1でした。 ただし、「なし」のように2が返ってくるものもあります。 A列      B列 1 りんご     1 2 りんご     1 3 みかん     1 4 いちご     1 5 もも      1  6 なし      2 7 なし      2 (ずれて見苦しいかもしれませんがお許しを) 不思議に思い、一度エクセルからcsvに変換し、 またエクセルファイルになおして、 チェックしてみましたが、結果は同じ。 if関数を使ってみたらどうなるだろうかと チェックしてみたら今度は A1とA2の「りんご」は同じものである という 結果が返ってきました。 countif関数では別物と判断し、if関数では同じもの と判断する・・・ というのは、一体どういうことなのでしょうか? countif関数をなにか勘違いしているのかもしれませんが、よろしくお願いいたします。

  • エクセルのcountifについて

    はじめまして。 countifを使って以下の作業を行いたいのですが 上手くいきませんのでよろしくお願いします。   A   B 1 1149 個数を出す 2 7921    3 97    4 171    5 265 ・ ・ ・ 10000まで A列に10000までランダムに数字を入力して  COUNTIF(A1:A10000,1)で B列にA1からA10000の内1は何個か数える。 ここまでは出来るのですが このまま10000まで引っ張って行くと  COUNTIF(A2:A10001,1)  COUNTIF(A3:A10002,1)     ・     ・     ・ となってしまいます。 私としては  COUNTIF(A1:A10000,1)  COUNTIF(A1:A10000,2)  COUNTIF(A1:A10000,3)   と範囲はそのままで検索だけを1から10000まで変えたいのですが方法はあるでしょうか? 手作業でやる事も考えましたが余りにも時間がかかるので挫折しました。 解決法をご存知の方よろしくお願いします。

  • エクセルのCOUNTIFで

    エクセルのカウント方法について教えてください。 A1~A100のセルに式が入っていて、条件により答えが表示される場合とされない場合(="")があります。 答えは文字列です。 A1~A100のなかに答えが表示されているセルの数を求めるにはどういう式にすればいいのでしょうか? COUNTA(A1:A100)では100となってしまいますので、COUNTIFだとは思うのですが・・・・。

  • エクセルで重複チェック

    はじめまして。 エクセルで重複チェックをしたいのですが、ちょっと特殊なチェックの仕方が必要です。 A列の1~10とA列の11~20の重複チェックをしたいのですが、その際1~10の中では重複してても良くて、1~10の中のセルと11~20の中のセルが重複してるかチェックはできますでしょうか? よろしくお願いします。<(_ _)>

  • エクセル関数で重複チェック

    エクセル2010です。 ワークシートのB10:B17の範囲に数値(1から200くらいの自然数)が入力されます。 この範囲が空白になることはありません。 この範囲内での重複(同じ数値の入力)をチェックしたいのです。 ただし、1は何個あろうが重複に含めません。 となりの列あたりを作業列にして、COUNTIFでもできますが、1個のセルで完結させたいと思います。 まず、1を超える数値の個数を取得し、そこから1を除く数の種類の数を引いて0になれば重複はないのではないかと思い、下記の数式を書いてみました。これでTRUEなら重複はないと思いますが、もっと簡単な方法があるのではないかと質問いたしました。 よろしく願いします。 =COUNTIF(B10:B17,">1")-(SUMPRODUCT(1/COUNTIF(B10:B17,B10:B17))-(COUNTIF(B10:B17,"=1")>0))=0

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

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

専門家に質問してみよう