いろいろな重複チェック
重複チェックの方法を3つ紹介します。
場面に応じて、それぞれの方法を選択してくださいね。
①条件付き書式を使う
下記の表があります。例えば仕入先から得た情報を、今後どんどん追加していく予定のものです。誤って仕入先から同じデータが送付されてきたとき、気づけるようにしたいです。
設定したい箇所を範囲選択し(今後増えていくので、列全体を選びます)、「ホーム」タブから、「条件付き書式-セルの強調表示ルール-重複する値」を選択
プルダウンで書式は選べます。ここではデフォルトのまま「OK」を押します。
試しに12行目に、11行目と同じ値を入力してみます
重複している値が強調表示されました。
ちなみにExcel2007以降であれば色フィルタが使えるので、重複していたデータだけを抽出することが可能です。
②ツールを使う
いちばんシンプルで簡単なのがこの方法。
さきほど追加した12行目は残したまま、同じデータを使います。
表内の任意の場所を選択した状態で、 「データ」タブから、「重複の削除」をクリックします。
シリアルNo.にだけチェックを入れて「OK」を押します。
12行目に追加していた重複の値が削除されました。
ただし、この方法だと容赦なく重複データが削除されてしまうので、どれが重複していたのかがわからなくなります。
③数式を使う
条件付き書式が便利なので、わざわざ数式を使う場面があまり思いつかないですが、参考までに。
空いているC列に、チェック表示する列を用意します。
数式はこれ。
=IF(COUNTIF(B:B,B2)>1,"重複","")
B列に、B2と同じデータが2以上((>1)または(>=2)でも)あれば”重複”と表示させるIF文です。
11、12行目に無事「重複」と表示されました!
思ったとおりの結果が出ると嬉しいです。
気づかぬうちにデータが重複しているとなかなか厄介なので、うまく処理していきましょう。
枝番をつけたい
受発注業務でもなんでも、今どきほとんどが専用システムなので、勝手にユニークNo.が振られて管理されると思います。
そしてほとんどがデータをCSVやExcel形式でDL可能だと思います。
ただ、ときどき、枝番がついていないことがあります。たとえば受注番号や、客先注文番号。
同じ番号で複数明細の注文をいただいた場合、伝票1件で1番号の処理のため、例えば下記のようなデータになります。
受注No. | 商品コード | 商品名 | 数量 | 単価 | 金額 |
123456 | N001 | ノートPC | 10 | 50,000 | 500,000 |
123456 | D002 | デスクトップPC | 10 | 40,000 | 400,000 |
いや、今どきのシステムはほとんどの場合自動的に枝番付与されると思うんですが、もしついていなかった場合に、自分で振る方法です。
=COUNTIF(INDIRECT("A2:A"&ROW()),A2)
数式はこれ。
受注No.の隣(B列)に項目「明細No.」を挿入して、この数式を入れると
こうなります。
枝番として表示するなら↓
=A2&"-"&COUNTIF(INDIRECT("A2:A"&ROW()),A2)
受注No. | 明細No. | 商品コード | 商品名 | 数量 | 単価 | 金額 |
123456 | 123456-1 | N001 | ノートPC | 10 | 50,000 | 500,000 |
123456 | 123456-2 | D002 | デスクトップPC | 10 | 40,000 | 400,000 |
分解していくと、「COUNTIF」でA列(受注No.)に、その行のNo.と同じものがいくつあるかを数えます。
「=COUNTIF(A:A,A2)」
これだと2つあるので「2」と表示されてしまいます。
なので、範囲をA2から、その行まで(2行目であればA2まで)としたいです。
そこで
「INDIRECT(参照文字列,[参照形式])」を使います。
指定したい範囲はA2からAの○行目まで、なので、「A2:A」は固定です。
行番号を「ROW()」で指定します。
※「A2:A」は文字列なので、表を移動させた際、ずれてしまうので注意が必要です。
(参照文字列を表外に用意して、そこを参照させる形にすれば、移動した場合に修正が1箇所で済みます)
この数式なら、データがいくつあっても枝番が簡単に付けられます。
受注No. | 明細No. | 商品コード | 商品名 | 数量 | 単価 | 金額 |
123456 | 123456-1 | N001 | ノートPC | 10 | 50,000 | 500,000 |
123456 | 123456-2 | D002 | デスクトップPC | 10 | 40,000 | 400,000 |
234567 | 234567-1 | N001 | ノートPC | 8 | 50,000 | 400,000 |
345678 | 345678-1 | N001 | ノートPC | 4 | 50,000 | 200,000 |
345678 | 345678-2 | M003 | モニタ | 10 | 20,000 | 200,000 |
345678 | 345678-3 | D002 | デスクトップPC | 4 | 40,000 | 160,000 |
456789 | 456789-1 | N001 | ノートPC | 3 | 50,000 | 150,000 |
567890 | 567890-1 | N001 | ノートPC | 1 | 50,000 | 50,000 |
567890 | 567890-2 | D002 | デスクトップPC | 1 | 40,000 | 40,000 |
567890 | 567890-3 | M003 | モニタ | 1 | 20,000 | 20,000 |
567890 | 567890-4 | M003 | モニタ | 1 | 20,000 | 20,000 |
678901 | 678901-1 | N001 | ノートPC | 5 | 50,000 | 250,000 |
もしよかったら使ってみて下さい!
はじめに
雇用形態に関わらず、複数の会社で営業事務(一般事務等含む)に従事してきた私が
日々のExcel作業で「これができたらいいのに…!」と思うことを
ひとつずつ、形にしてきました。
うまくいったときの喜びはひとしお! みんなにシェアしたい!
基本的なことばかりですが、Excelは使う人の発想力も大事だったりします。
文系の私がExcelを楽しめるようになったのは、
イメージを形にできたから。
つまづくこともありますが、根気よくやれば結果が出ます。
根気がなくても、数式をコピペすればいいんです。
何度も同じことをやるのがめんどくさい!
ボタンひとつでぱぱっとできないの?!
と、VBAにも少し手を出しました。
ひとつでも、お役に立てば嬉しいです。