• ベストアンサー

エクセルで数字の重複を防ぐ方法

CからG列に1から12までの数字をランダムに入力しています。 その数字が重複していると困るので、数字が重複していた場合 H列にエラーメッセージが出るようにしたいのですが、良い方法は 無いでしょうか? 200行くらいまで入力する予定です。 よろしくお願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

行内の重複ならC:G列だと1~12までの5個になりますので H2=IF(SUMPRODUCT(1/COUNTIF($C2:$G2,$C2:$G2&""))<5,"重複","OK") 入力規則として、数値の範囲を1~12にしておくと更に良いでしょう。 追加で異なる行での組み合わせとしての重複を見る場合 H2=TEXT(C2,"00")&TEXT(D2,"00")&TEXT(E2,"00")&TEXT(F2,"00")&TEXT(G2,"00") で10桁の数字の文字列を作成 I2=IF(COUNTIF($G$2:$G$200,G2)>1,"重複","OK")

hanauta00
質問者

お礼

ありがとうございます! SUMPRODUCT、初めて見た関数でした。自分で考えていたら 想像もつかなかったと思います。 入力規制もしておきました。助かりました!

その他の回答 (4)

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.5

No.2です。 No.3さんの回答を見て思ったのですが、1行ごとにということでしょうか? そういうことでしたら、 No.2 の 回答にある数式を =COUNTIF($C1:$G1,C1)=1 にして、あとは同じようにしてみてください。 ( $C1:$G1 のように、列記号の前に $をつけてください ) No.1 の回答では、C1:G200 の範囲内に同じ数字があればエラーメッセージが出てしまいます。 それと、範囲指定するときは必ず C1から始めてください。 ( C1セルがアクティブ → C1だけが白で、あとは青くなっている状態で入力規則を設定してください ) それでもうまくいかないときは、入力規則の数式をどのように入れたのか、その数式をそのまま提示してください。

hanauta00
質問者

お礼

再びご回答頂きありがとうございます。 質問の仕方が悪くて、誤解させてしまったようで 申し訳ありません。 教えて頂いた方法でうまくいきました!先ほどは 範囲指定をC1から初めていなかったので、駄目だったようです。 すみませんでした。 教えて頂いた方法は、他にも使えそうですね。 ありがとうございました。

  • banker_U
  • ベストアンサー率21% (17/78)
回答No.3

重複は横方向にあったらいけないんですよね? 愚直に下記ですかねえ。 2行目以下に数字が入っているとして、H2セルに以下を入力 =IF(OR(C2=D2,C2=E2,C2=F2,C2=G2,D2=E2,D2=F2,D2=G2,E2=F2,E2=G2.F2=G2),"ERROR!","") あとは下へコピー。 どなたかいい関数ご存知でしたら教えてください。

hanauta00
質問者

お礼

ありがとうございます! 質問の仕方がまずかったようで、皆様を困惑させてしまったようです。 申し訳ありません。 ご回答を参考に(数字が4行目からでしたので) =IF(OR(C4=D4,C4=E4,C4=F4,C4=G4,D4=E4,D4=F4,D4=G4,E4=F4,E4=G4,F4=G4),"ERROR!","") としたところ、うまくいきました!ありがとうございます。

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.2

こんにちは~ 次のようにしてみてください。 C1:G200 をマウスでドラッグして範囲指定 メニューの 「データ」-「入力規則」 表示されたダイアログの 「設定」タブをクリック 「入力値の種類」から <ユーザー設定> を選択 下の 「数式」欄に =COUNTIF($C$1:$G$200,C1)=1 と入力して 「OK」をクリック 以上の設定で、重複した数字を入力しようとしてもエラーメッセージが出て、受け付けてくれません。 質問の意味を取り違えていたらゴメンナサイ。

hanauta00
質問者

補足

早速のご回答ありがとうございます。 やってみたのですが、C1に「1」を入力したとたん 「入力した値が無効です」というメッセージが出てしまいました。 他のセルも同様です。 どこが悪いのか分かりましたら、教えて頂けますか?

回答No.1

全部入力した後に<データ><フィルタ>より≪フィルタオプション設定≫で重複するレコードは無視する。 にしてみてはいかがでしょうか? 試しに、ランダムに入力してやってみてください(^^)

hanauta00
質問者

お礼

早速の回答ありがとうございます。 私の質問の仕方が悪かったようで、申し訳ありません。 フィルタオプションだと、フィルタをかけなくてはいけない ですよね? 入力しているときに重複していることが分かれば、と思ったのです。

関連するQ&A

  • 同じ数字を2個使用している重複行の数字の出力方法

    いつもお世話になっております。 ご存じの方がお見えでしたら回答をよろしくお願い致します。 【質問】  2019/12/08 22:31 に質問No.9687909 として  『同じ数字を3個~4個使用している重複行の塗り潰し2』という質問をさせて  頂き、SI299792様とnishi6様から回答を頂きました。  この時の質問から発展して、『同じ数字を2個使用している重複行の数字の出力  方法』が今回の質問です。添付図のとおり、5列×20行に絞り、2個の数字が  重複していたら黄色でセルを塗り潰し、”重複している行”をG列に書き出す事は  前回の回答から対応できましたが、実際にどの2個の数字が重複しているか塗潰  されたセルでは分かり難い場合があるため、H列~AA列に書き出す方法が知り  たく質問させて頂きます。 以上、よろしくお願いします。

  • セルの数字を昇順に並び替えて重複削除する方法

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】  添付図のとおり、2列×20行の数字が【入力値2列】欄に入っています。  この数字を昇順に並び替えて重複数字を削除したものを【重複チェック済2列】に  出力します。また、【入力値2列】欄の数字を【入力値1列】に縦1列にして数字 を昇順に並び替えて重複数字を削除したものを【重複チェック済1列】に出力しま す。具体的には下記(1)~(4)の手順です。質問は2列×20行での場合ですが、  2列×200行の場合でも上記のことができるようにしたいです。    *********************************** (1)入力値2列(A列・B列)に2つの値をセットします。 (2)入力値2列(A列・B列)の値を重複チェック済2列(D列・E列)に並べて昇順に並び替えて重複数字を削除します。 (3)入力値2列(A列・B列)の値を入力値1列(G列)に1列にセットします。 (4)入力値1列(G列)の値を重複チェック済1列(I列)に並べて昇順に並び替えて重複数字を削除します。 以上、よろしくお願いします。

  • 重複数字を切り取り空いた隙間を右詰めするには?

    どなたかご存知でしたら回答をお願いします。 【質問】 下図の様に5×5のセルが2つあり、それぞれ1~99迄の数字がランダムに 重複有りで入っています。5×5のセルの中には行の連続数字(例:02 03) が入っています(1個も無い場合もあります。1行全部(5個)の場合もあります。)。 行の連続数字を見つけたら、その連続数字を切り取り「◎重複数字」の下に順番に 並べていき、切り取られた空白箇所を埋めるために左側にある数字を右に詰める 方法が知りたいです。 【例題】 A B C D E  F  G H I J K   1 0107091122     0310203031 2 0412141523     0102070922 3 0713171825     0411121415 4 0616212426     0213171823 5 0819272829     0607080910 【実行後】 A B C D E F  G H I J K   1 0107091122          031020 2   041223          070922 3   071325            04 4 0616212426          021323 5    0819           ◎重複数字 14 15         30 31 17 18         01 02 27 28 29       11 12               14 15              17 18              06 07 08 09 10       【注意事項】  ・使用するエクセルは2010です。  ・セルの中の数字は2桁で表しています。(例:1ではなく01)  ・5×5のセルの位置は下記のとおりです。    1個目の5×5マス・・・A1~E5    2個目の5×5マス・・・G1~K5     ※F列は空白列として空けています。   ・回答はVBでも関数でも構いません。 以上、よろしくお願いします。

  • 同じ数字を2個使用している重複行の数字の出力方法2

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】 2019/12/20 22:51に質問No.9692415として 『同じ数字を2個使用している重複行の数字の出力方法』という質問をさせて頂き、 nishi6様から回答を頂きました。 動作としては添付図のとおり5列×20行の数字の中から、2個の数字が重複していたら黄色でセルを塗り潰し、重複する行に重複した行を、実際に重複した2個の数字をH列~AA列に書き出します。)この時の質問から発展して、『同じ数字を2個使用している重複行の数字の出力方法2』が今回の質問です。 具体的には下記2つです。 (1)重複数字1~重複数字10の2列×20行の数字をAB列・AC列に縦に並べた後、昇順に並び変えて重複数字を削除する。 (2)重複数字1~重複数字10の2列×20行の数字をAE列のみに縦に並べた後、  昇順に並び変えて重複数字を削除する。(又は、(1)で重複数字が削除された数字をAE列に1列に並べた後、昇順に並び変えて重複数字を削除する。) 以上、よろしくお願いします。

  • 同じ数字を2個使用している重複行の数字の出力方法3

    いつも大変お世話になっております。 どなたかご存じの方がお見えでしたら回答頂けると幸いです。 【質問】 2020/02/29 15:35に質問No.9718103として 『同じ数字を2個使用している重複行の数字の出力方法2』という質問を させて頂き、SI299792様から回答を頂きました。 動作としては添付図のとおり5列×20行の数字の中から、 2個の数字が重複していたら黄色でセルを塗り潰し、 重複する行に重複した行を実際に重複した2個の数字をH列~AA列に書き出し、 重複数字1~重複数字10の2列×20行の数字をAB列・AC列に縦に並べた後、 昇順に並び変えて重複数字を削除し、重複数字1~重複数字10の2列×20行の数字をAE列のみに縦に並べた後、昇順に並び変えて重複数字を削除する。 ここから今回の質問です。 (1)AB列・AC列に縦に並べた後、昇順に並び変えて重複数字を削除されるはずですが、添付図のとおりAB19・AC19、AB21・AC21に「22 30」が残っています。 この重複を削除するにはどうすればよいですか? 以上、よろしくお願いします。

  • 重複している数字を表示する方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルのA列~E列に0~9迄の任意の数字が1つだけ入っています。  「A列~E列で重複している数字があればF列又はG列にその数字を出力する」  方法が知りたいです。具体的に下記のエクセルシートのとおりです。 ●エクセルシート   A B C D E F G   3 3 1 7 8 3   ←3が2個重複しているので、F列に3が入る。   7 7 7 7 7 7   ←7が5個重複しているので、F列に7が入る。   4 4 4 4 2 4   ←4が4個重複しているので、F列に4が入る。   6 6 6 3 1 6   ←6が3個重複しているので、F列に6が入る。   1 1 8 8 8 1 8 ←1が2個、8が3個重複しているので、F列に1、G列に8が入る。   3 3 2 2 5 3 2 ←3が2個、2が2個重複していうので、F列に3、G列に2が入る。    3 4 5 6 7     ←重複数字は無いため、F列、G列には何も入らない。  ●注意事項   ・使用するエクセルは2010です。 以上、よろしくお願いします。 投稿日時 - 2013-05-04 11:02:06

  • Excelのマクロを使って数字を入力したいのですが、方法がわかりません。

    ExcelのG列とI列にランダムに3桁の数字を作成しました(=ROUND(RAND()の数式を使いました)。 あいだのH列には‐(ハイフン)が入力されています。 これらを別のシートの同じ列に形式を“値”と選択してコピーしました。これらの数字をB列に入力したいのです。 具体的には、たとえば、G1セルに265,H1セルに-、I1セルに849と入力されているとしたら、B1セルに265-849と入力されるように設定したいのです。 それぞれの列にはランダムな数字が並んでおり、対応するB列のセルに同様に入力されるように設定したいのですが、方法がわかりません。マクロを使えばよいとのことですが、どなたか詳しく教えてください。 よろしくお願いします。

  • エクセル 任意の数字から始まる重複しない乱数

    お世話になります。 エクセル2003/XP 使用です。 RANK関数またはそれに似た利用方法でご教授願いします。 下記ページを参考に、"重複しない乱数”を作成しました。 http://www.relief.jp/itnote/archives/001798.php (ページ中程、▼操作手順:重複しない乱数を作成する 以下の部分) 乱数の最初の数字が1から始まる分には問題なくできるのですが、 乱数の数字を、「任意の数字から始めて」、 「任意の数字で終わる」ようにすることは可能でしょうか? 例えば、下記の例でいうと、 6から始まり10で終わる乱数です。        A列     B列 1行目 / =RAND() / 1-5の範囲でランダムな重複しない乱数 2行目 / =RAND() / 同上 3行目 / =RAND() / 同上 4行目 / =RAND() / 同上 5行目 / =RAND() / 同上 ------------------------------------------------------------ 6行目 / =RAND() / 6-10の範囲でランダムな重複しない乱数 7行目 / =RAND() / 同上 8行目 / =RAND() / 同上 9行目 / =RAND() / 同上 10行目 / =RAND() /同上 (11以下、繰り返し 略) よろしくお願いします。

  • 重複入力の回避のVBAをご教示ください

    6行目のセル(6行、C列)に顧客番号を入力し、F列以降に、セル(6行、C列)の顧客番号の内容を入力しています。   その入力時に、顧客番号の重複入力を避けるためのチェック及び対処処理をご教示お願い致します。     (1)・セル(6行、C列)に顧客番号を入力し、F列からH列に、セル(6行、C列)の顧客番号の内容を入力する。     (2)・セル(7行、C列)に顧客番号を入力し、F列からH列に、セル(7行、C列)の顧客番号の内容を入力する。       (イ)・セル(7行、C列)に顧客番号を入力し、エンターキーを押した時点でセル(6行、C列)の顧客番号と重複していなかチェックする           ●重複していない場合は、カーソルをセル(7行、F列)へ移動させる           ●重複している場合は、「同じ番号があります」とメッセージボックスを表示する。               メッセージボックスのキャンセルボタンをクリックするとセル(7行、C列)の重複番号が削除されカーソルはセル(7行、C列)へ     (3)・セル(8行、C列)に顧客番号を入力し、F列からH列に、セル(8行、C列)の顧客番号の内容を入力する。        (イ)・セル(8行、C列)に顧客番号を入力し、エンターキーを押した時点でセル(6行、C列)とセル(7行、C列)の顧客番号と重複していなかチェックする           ●重複していない場合は、カーソルをセル(8行、F列)へ移動させる           ●重複している場合は、「同じ番号があります」とメッセージボックスを表示する。               メッセージボックスのキャンセルボタンをクリックするとセル(8行、C列)の重複番号が削除されカーソルはセル(8行、C列)へ     (4)・セル(9行、C列)に顧客番号を入力し、F列からH列に、セル(9行、C列)の顧客番号の内容を入力する。        (イ)・セル(9行、C列)に顧客番号を入力し、エンターキーを押した時点で、セル(6行、C列)とセル(7行、C列)とセル(8行、C列)の顧客番号と重複していなかチェックする           ●重複していない場合は、カーソルをセル(9行、F列)へ移動させる           ●重複している場合は、「同じ番号があります」とメッセージボックスを表示する。               メッセージボックスのキャンセルボタンをクリックするとセル(9行、C列)の重複番号が削除されカーソルはセル(9行、C列)へ     (5)・(1)~(4)を1セットとお考え下さい           ●10行から13行の4行を1セットとして、セル位置は変わりますが、(1)~(4)の処理をしたい。           ●最終  702行から705行まで、(1)~(4)の処理をしたい。 宜しくお願い致します。

  • 1行複数列の中にある重複数字を削除する方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルシートA列~F列に1~31迄の数字が順不同に入っています。  これをG列~L列に「重複数字は1つにして昇順に並べる」方法が知りたいです。 ●エクセルシート  A  B  C  D  E   F  G  H  I  J  K  L   4  14  20  19  4  19  4  14  19  20 ←重複数字は1つになる。    15  5  9            5   9   15  6  12  12  24        6   12  24    ←重複数字は1つになる。   4  26  8   6        4   6   8  26  ●注意事項   ・使用するエクセルは2010です。 以上、よろしくお願いします。

専門家に質問してみよう