案外大変な名寄せ作業で事前にしておくこと
Excelを使う作業で「名寄せ」を行う作業について説明します。
名寄せ作業は弊社でも行っておりますが、実は結構複雑だったりします。
基本的には名寄せ対象となるデータの在り方がすべてを左右しますが、簡単だと思っていると足元をすくわれることもあるので注意が必要です。
これまでの経験で大変だった点などをお話したいと思いますので、みなさんの名寄せ作業と被る部分があればぜひ参考にしてもらえればと思います。
名寄せ作業とは
名寄せ作業の厳密な定義はわかりませんが、弊社では下記のような作業を「名寄せ」作業として行っております。
■2つの表を一つにまとめる
上記は表Aと表Bの2つのデータ群を一つにまとめる作業を指しています。
■1つの表で重複するデータを一つにまとめる
上記は表Aの中で重複するデータを1つにするような作業を指しています。
※実際には、2つの表の場合、持っている項目が同一でなく、表A、Bのそれぞれで重なる項目と異なる項目を持っているなどがありますが、通常はこのような表の(データで)重なる項目を比較して、差分を見つけ修正するイメージです。
なお、データの持ち方や件数にもよりますが、名寄せ作業ではAccessの(クエリを使う)方が便利です。ただしAccessを使う場合であっても本ページで挙げている注意点は当てはまります。
事前準備が精度を大きく左右する
名寄せ作業では、事前に各データのチェック及び修正が必要になります。
この時点で、このチェックが緩い状態で始めると結果的にやり直しせざる得ない場合が出てくるので注意が必要です。
(この手の作業ではExcelの関数で言うと、VLOOKUPやCOUNT、IF関数などが使えますが(比較対象となる)データの精度が悪いと使い物にならない場合もあります)
Excel(コンピュータ)が判断できるようにデータを揃える
たとえば、「巨人軍」と「ジャイアンツ」は人が見れば、同一のものを指すことができますが、コンピュータでは文字列が異なるため別物として判断します。
ここでいう「データを揃える」というのはこのようなことを指しています。同じ理屈でいくつか例を示すと
- 株式会社と(株)をどちらか統一しておく
- 住所は都道府県から始める
- 電話番号は市外局番から始める
などです。もし人の名前なら、姓と名の間の空白をどうするか、生年月日を西暦、和暦のどちらかにするか、などが考えられます。
比較対象となる項目については、比較する前にデータを変換しておくと漏れが減ります。ただし(下記でも説明しますが)、その一方でやりすぎると危険な場合もあり、バランスが必要になります。
その他よくある点に、カンマ、中点(中黒)、カタカナ表記とひらがな表記、全角と半角の違いがあります。
どこまでデータを揃えるか考える
上記と相反しますが、データを揃える場合、もともと違うデータだった場合に、名寄せで1つにまとまってしまうことでかえって都合が悪い場合もあります。
たとえばデータを揃える為に「法人格を削除」した場合です。
この場合、たとえば「ABC株式会社」と「ABC有限会社」がそれぞれ別会社として存在した場合が該当します。
やりすぎると別の問題を引き起こすために気をつける必要があります。
項目1つでは判断ができない、判断してはいけない場合
上記に挙げた「どこまでデータを揃えるか考える」場合ですが、このようなとき、通常は他の項目も比較対象として「同一か」、「そうでないか」の判断します。
社名や人の名前が同じだった場合に、たとえば「社名と住所」、「名前と生年月日」などと複数項目にすることで有効に役立ちます。
裏を返すと逆に1つだけでの判断は漏れが含まれている可能性があるということです。たとえば、社名が変更された場合、これは社名だけで判断すれば別物の会社と見ることができますが、もし住所が同じなら社名変更と見ることもできるからです。
事前チェックの限界
事前チェックは限りなく100%の状態にしたうえで名寄せすることが望ましいですが、弊社の経験では現実的にそれは難しいと思われます。
例えば、ここで最初にあげた2つの表を示しますが、
「AAA株式会社」は表A、表Bで同じデータと判断できますが、本当にそうでしょうか?
もしかしたら、表BのAAA株式会社は入力ミスで本当は「ZZZ株式会社」のデータだった、ということもありえるかもしれません。
それならば、比較する項目列を社名だけでなく、住所、TEL・・・その他全項目でチェックすればよいのですが、その場合は各項目間の事前チェックの作業が広がり、この部分で漏れがあった場合を考慮する必要が出てきます。
あるいは例えば「斉藤」さんという名前が正しい場合に、「斎藤」、「齋藤」、「齊藤」などが入力されていると(人の判断としては)同じでも、文字が間違えていると一致しません。
このように根本を辿ると無限になったりします。
このため、実際にはある程度の線引きをして、一定の部分までは入力した内容を信用し、そこで溢れたデータは目視確認というのが現実的な対処法だと思われます。
これは、金額の集計で明らかに少ないということで、その後、正しく名寄せができていないことがわかりました。
トドめはExcelの限界!?
おそらく名寄せで困っている方は、ここに挙げた点に当てはまるところもあるのではないかと思います。
冒頭のほうでExcelで名寄せにも活用できる関数を挙げましたが、これまでお話したようにその機能が生かされるのはデータの整合性や精度が確保できるときです。
逆に言うとExcelの関数では一言で言えば「正しい」、「正しくない」の2つの答えしか返ってきません。
名寄せ作業ではそれでは十分とは言えず「少し違います」とか「かなり同じです」的な回答も必要になることが多いわけです。
最終的には目検が必要となる
弊社ではマクロ(VBA)を使ったプログラムで名寄せ作業もしておりますが、こういった点を満たすため、このようにしないと関数やExcel機能だけでは満たされない部分があるというのが弊社のこれまでの経験です。
従いまして、VBAで同じ内容かどうかのランク(重み)付けを行い、その後目視で再確認というフローで対応しております。
以上、参考になれば幸いです。