• ベストアンサー

エクセルでこれを実現する方法

エクセル上で、セルA1に1、A2に2・・・という感じで A10まで数字があるとします。 ここで私が知りたいのは、各セル内で重複している 数字がいくつ存在するか、ということです。 この場合でいうと、A1~A10に1~10まで重複なく数字が あるとすると、重複は「0」で、仮にA10に8という数字が合った場合 重複は「1」という情報を知りたいのです。 これをエクセル上で実現する方法は何がベストなのでしょうか。 (関数?VBA?その他・・・もしくは不可?) 実際の入力数値はお金(数十万単位)の上、 量も膨大ですのでオートフィル機能は非現実的だと 考えております。 関数やVBAは少々触ったことがあるレベルです。 大した知識はなく、ちょっと混乱気味で、 知識ある方のご意見・お知恵を拝借したく よろしくお願い致します。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

A1:A10で重複のない数字の個数は  =SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10)) で求められます(ただし途中に空白はなし) 従って重複する数字は =COUNT(A1:A10)-SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10)) になります

T-master
質問者

お礼

ズバリ!これです。 非常に助かりました。 ご回答ありがとうございました。

その他の回答 (3)

  • bari_saku
  • ベストアンサー率17% (1827/10268)
回答No.4

>前半のセル(A1~A2)の変更分しか反映されないようです。 すみません、一応テストしてるんですが、どういう意味でしょうか?

T-master
質問者

お礼

問題が解決し、締め切った後にご質問いただいたことに気づきました。 A1~A10に1~10を重複無く割り振り、B1セルに「0」と解答が出るようにした場合、A1セルにに意図的に重複数字を入力するとB1セルに「1」と正常に出ましたが、以降のセル(A2~A10)に意図的に重複数字を入力しても、B1セルにカウントされない(A1セルの重複数である「1」のまま)、ということを書いておりました。説明足らずで申し訳ありません。 また、以下の点を修正します。 >前半のセル(A1~A2)の変更分しか反映されないようです。 誤り A1~A2 訂正 A1のみ 締め切りが早かったことをお詫び申し上げます。

  • bari_saku
  • ベストアンサー率17% (1827/10268)
回答No.2

すみません説明不足でした。 × B1~B100セルにこんな感じ? ○ B1セルにこの式をコピーし、以下の行にもコピペして下さい。(B列でなくてもいいですが)

T-master
質問者

お礼

教えていただいた関数ですと、前半のセル(A1~A2)の変更分しか反映されないようです。 ご回答ありがとうございました。

  • bari_saku
  • ベストアンサー率17% (1827/10268)
回答No.1

A1~A100にデータが入っているとして、 =IF(COUNTIF($A$1:$A$100,A1)>1,1,0) B1~B100セルにこんな感じ? 数値が重複していなければ0、していれば1がB列に表示されます。

関連するQ&A