顧客リストや従業員名簿など、氏名・住所・電話番号等のリストの作成、整理は業務の中でもしばしば登場する作業の一つです。
リストのチェックのポイントの一つは「データの重複が無いか」です。
ただ、最近の傾向としては最初から手入力でリストを作成する事は少なく、何らかのデータを複製・流用してリストを作成する事が多いので、登録方法に統一性がなく、姓名の間空白があったり、なかったりしてチェックしづらい事があります。
重複チェックの方法は、何通りかありますが、ベーシックな方法をご紹介します。
SUBSTITUTE関数とCOUNTIF関数を使った重複をチェック例
氏名リストの作成
まず、説明を簡単にする為に、氏名だけのリストを用意しました。
このリストの中で、「京都 太郎」さんは何人いるかチェックします。
その為、単純に「氏名」と言っても、姓と名の間に空白があったり、無かったりするデータが混在する事があります。
また、空白も全角、半角がありますので、単純な比較では正確に重複チェックができません。
SUBSTITUTE関数を使って氏名から空白を除去する方法
正確に重複をチェックするには、まず氏名に含まれる空白(全角・半角)を除去して比較対象の状態を同じにします。
文字列から空白を除去する関数として、SUBSTITUTE関数を使用します。
SUBSTITUTE関数は、検索した文字を別の文字に置換する関数ですので、空白を””(なにもない)に変換する事で空白を除去できます。
記述方法は =SUBSTITUTE(文字列,検索文字,置換文字,置換対象) となります。
具体的に紹介しましょう。
氏名の入力されたセルの横に、空白を除去した氏名が入るように数式を記述します。
記述方法は =SUBSTITUTE(SUBSTITUTE(A2,” ”,””),” “,””) とします。
()内のSUBSTITUTE(A2,” ”,””)は全角空白を””に変換しています。
(置換対象は、指定した検索文字だけを置換する場合に指定しますが、ここでは省略(全件対象)とします。)
=SUBSTITUTE(SUBSTITUTE(A2,” ”,””),” “,””)と記述する事で、()内で置換しきれない半角空白を置換する事ができます。
この数式を列Bの行末までコピーします。
これで、正確に比較できる要素ができました。
COUNTIF関数を使った重複をチェック例
検索範囲に名前をつける
重複チェックには、COUNTIF関数を使用します。
COUNTIF関数は、指定した範囲のうち検索対象の個数を表示する関数で、記述方法は、=COUNTIF(範囲,検索文字列) となります。
範囲は、そのままB2:B10と記述しても構いませんが、後で下にセルにコピーする際、相対的に範囲が変化してしまうので、ここでは「名前」をつけてしまう事にします。
名前の付け方は、数式メニューから「名前の管理」を選択し、新規作成を選択します。
名前は「氏名」としましょう。範囲は今回は「ブック」としていますので、すべてのシート上でこの名前が有効になります。
特定のシートの場合のみ名前を有効にする場合は、範囲でシート名を選択して下さい。
参照範囲はB2~B10(空白除去した氏名の範囲)を選択します。
(先にB2~B10を範囲指定してから、名前の管理→新規を選択すると、参照範囲の値は自動的に設定されます。)
OKをクリックして登録します。
名前ボックスに「氏名」が表示されればOKです。
COUNTIF関数を使う
それでは、COUNTIF関数を使用して重複をチェックします。
COUNTIF関数は、検索範囲を指定し、その範囲にある特定の値の個数を表示する関数です。
チェック用の列としてC列を使い、数式を入力します。
数式の記述方法は、=COUNTIF(範囲,検索文字列) とします。
例) COUNTIF(氏名,B2)
(検索範囲「氏名」からB2(京都太郎)と同じ値の個数を表示する。)
このC列の値が2以上が重複している行、という事になりますので、フィルタを使用して重複行のみにデータを絞り込んでチェックします。
まとめ
ポイントは、比較対象の風体をあわせる、という事です。
実は、昨年の年賀状でこのチェックが甘く、同じ人に2通年賀状を送ってしまいました。原因はやはり姓名の間の空白でした。
今回は、氏名の例でご紹介しましたが、電話番号の場合も”-”(ハイフン)の有・無や全半角の違いが考えられますので、ハイフンを除去してから重複チェックを行う事をおすすめします。