Excelで社員番号、商品コード、顧客IDなどを管理していると、同じ値を誤って2回入力してしまうことがありますね。重複データは集計ミスや検索漏れの原因になるため、入力した時点で止められるようにしておくと安心です。
Excelでは、データの入力規則のユーザー設定を使うと、同じ列への重複入力をエラーで防止できます。関数を使った入力規則なので、一度設定すれば新しい入力ごとに自動チェックされますよ。
結論:COUNTIF関数を使えば重複入力を防止できます
この数式は、A列の2行目から1000行目までを対象に、同じ値が2個以上になったら入力を拒否する設定です。空白セルは許可し、同じ文字列や同じ番号だけをブロックします。
数式内のA2は、選択範囲の先頭セルに合わせるのがポイントです。たとえばB列のB5からB500で重複を防ぐなら、数式は =OR(B5="",COUNTIF($B$5:$B$500,B5)<=1) になります。
Excelで重複入力を禁止する設定手順
ここでは、A2からA1000までの社員番号を重複入力できないように設定する手順を紹介します。
- 重複を禁止したい範囲として、A2:A1000を選択します。見出しがA1にある場合は、見出しを含めないようにしましょう。
- Excel上部のリボンから[データ]タブをクリックします。
- [データツール]グループにある[データの入力規則]をクリックします。
- 表示された画面で[設定]タブを開き、[入力値の種類]を[ユーザー設定]に変更します。
- [数式]欄に =OR(A2="",COUNTIF($A$2:$A$1000,A2)<=1) と入力します。
- [エラーメッセージ]タブを開き、[スタイル]が[停止]になっていることを確認します。
- [タイトル]に「重複入力」、[エラーメッセージ]に「この番号はすでに入力されています。別の番号を入力してください。」などと入力します。
- [OK]をクリックして設定完了です。
設定後、すでに入力済みの番号と同じ値を入力すると、エラーメッセージが表示されます。[再試行]を選べば入力をやり直せるため、重複データを表に残さずに済みますよ。
数式の意味と、参照を固定する理由
入力規則の数式は、見た目が少し難しく感じるかもしれません。意味を分けて見ると、調整しやすくなります。
- COUNTIF($A$2:$A$1000,A2):A2からA1000の中に、入力したA2と同じ値が何個あるか数えます。
- <=1:同じ値が1個以下なら入力を許可します。自分自身の1件だけなら問題ありません。
- A2="":入力したセルが空白かどうかを判定します。
- OR(条件1,条件2):空白である、または重複がない、どちらかを満たせば入力を許可します。
$A$2:$A$1000のドル記号は、チェックする範囲を固定するための記号です。一方、最後のA2にはドル記号を付けません。選択範囲の各行でA3、A4のように判定対象を自動で切り替えるためです。
空白も禁止したい場合の数式
社員番号や管理番号など、必ず入力してほしい項目では空白も許可したくないことがあります。その場合は、OR関数を外して次の数式を使いましょう。
=COUNTIF($A$2:$A$1000,A2)<=1
ただし、この設定では空白セルも重複として扱われやすくなります。入力途中の空欄が多い表では使いにくい場合があるため、通常は空白を許可する最初の数式がおすすめです。空白禁止を厳密に行うなら、入力規則を別途設定するか、必須項目のチェック列を作る方法も便利ですよ。
2つの列の組み合わせで重複を防ぐ方法
商品コードだけでは重複しても、商品コードと倉庫名の組み合わせは重複させたくない、といったケースもありますね。この場合はCOUNTIFS関数を使います。
たとえば、A列に商品コード、B列に倉庫名があり、A2:B1000の組み合わせを重複禁止にする場合は、A2:B1000を選択して次の数式を設定します。
=OR(A2="",B2="",COUNTIFS($A$2:$A$1000,A2,$B$2:$B$1000,B2)<=1)
この数式では、商品コードと倉庫名が両方同じ行だけを重複として判定します。片方が未入力の間はエラーを出さないため、入力途中でも作業しやすい設定です。
うまくいかない場合のチェックポイント
既にある重複データは自動で削除されません
入力規則は、設定した後の入力をチェックする機能です。すでに表内にある重複値を自動削除する機能ではありません。まず既存データを確認したい場合は、[ホーム]タブ→[条件付き書式]→[セルの強調表示ルール]→[重複する値]を使うと、重複セルを色付けできます。
エラーが出ずに重複を入力できてしまう
[データの入力規則]の[エラーメッセージ]タブで、[無効なデータが入力されたらエラーメッセージを表示する]にチェックが入っているか確認しましょう。また、エラースタイルが[警告]や[情報]だと、利用者がそのまま入力を続行できる場合があります。確実に止めたいときは[停止]を選んでください。
数式の先頭セルが選択範囲と合っていない
A2:A1000を選んだのに、数式の判定対象がA1になっていると、正しく判定できません。選択範囲の左上セルがA2なら、数式の最後の判定対象もA2にします。B5:B500ならB5にする、というルールで覚えると迷いません。
コピー&貼り付けで設定が消えた、または上書きされた
別のセルを貼り付けると、値だけでなく入力規則まで上書きされることがあります。入力規則を残したい範囲へデータを貼り付けるときは、右クリックして[形式を選択して貼り付け]を開き、[値]を選びましょう。貼り付け後は、[データ]→[データの入力規則]で設定が残っているか確認すると安心です。
見た目は同じなのに重複と判定されない
文字列の末尾にスペースが入っていたり、全角と半角が混在していたりすると、Excelは別の値として扱うことがあります。商品コードや氏名を外部システムから貼り付ける場合は、余分な空白に注意しましょう。必要に応じてTRIM関数で余分なスペースを整える方法もあります。
関連する時短ワザ:重複チェックを素早く行う方法
入力規則を設定する前や、すでにあるデータを確認したいときは、条件付き書式で重複を見つける方法が便利です。
- 確認したい列または範囲を選択します。
- [ホーム]タブ→[条件付き書式]→[セルの強調表示ルール]→[重複する値]をクリックします。
- 表示形式を選び、[OK]をクリックします。
また、入力規則を設定したセルをすばやく探したいときは、[ホーム]タブ→[検索と選択]→[条件を選択してジャンプ]→[データの入力規則]を使えます。入力ルールがあるセルだけをまとめて選択できるので、複数シートの点検にも役立ちますよ。
重複防止は、入力する人の注意力に頼らず、Excelにチェックを任せられる時短ワザです。社員番号、注文番号、請求書番号、メールアドレスなど、重複すると困る列から入力規則を設定してみましょう。
