リストの良し悪しは、受け取った瞬間には分かりません。分かるのは、使い始めてからです。だからこの見本では、後から検証できる形で渡すことを設計の中心に置いています。首都圏の製造業100社という架空の依頼を題材に、条件の決め方から検証の実測値まで、実際のデータと一緒に並べました。
§1想定した依頼
この依頼文だけでは、まだ作り始められません。「中堅」は何名からか。支店や営業所は1社と数えるか。自社サイトを持たない会社は入れるか。判断の要る点が残っています。
ここを曖昧にしたまま進めると、納品したあとで「思っていたものと違う」が起きます。作り直しになれば、費やした時間は双方とも戻ってきません。ですので最初に、条件を文章にして固定します。
§2取得条件の定義
着手前に「含む」と「含まない」を書き出し、合意してから作り始めます。
+含む
- 所在地が東京都・神奈川県・埼玉県・千葉県
- 従業員50〜300名
- 業種の大分類が製造業
- 自社サイトを保有
−含まない
- 従業員50名未満・301名以上
- 持株会社・商社(製造機能を持たない)
- 自社サイトなし(SNSのみ)
- 同一法人の支店・営業所(本社に名寄せ)
要点は「含まない」を先に書くことです。含む条件だけでは、判断に迷う行が出たときの基準になりません。境界にあたる行は必ず出てきます。そのときに立ち返る先があるかどうかで、リストの一貫性は変わります。
この条件で実際に5件を除外しました。内訳と根拠は§5に、除外した行そのものは納品ファイルの「除外」シートに残しています。
§3データ本体(採用100件)
採用した100件を、主要12列で掲載しています。全24列は納品ファイルに収録しています。
§4列定義(全24列)
列は「あれば便利」では増やしません。24列それぞれに、後から効く役割があります。
列の意味が書かれていないリストは、作った本人以外には使えません。納品ファイルにも「列定義」シートを同梱し、ページとファイルで同じ説明が読めるようにしています。●印は、このページの表1に出している主要12列です。
列定義を読み込んでいます…
§5重複除外のロジック
同じ会社を2行に入れないこと、別の会社をまとめて消さないこと。両方を1つのキーで扱います。
同じ会社が2行あるリストは、そのまま営業に使うと同じ相手へ二度連絡することになります。かといって社名だけで機械的に潰すと、たまたま同じ名前の別会社まで消えます。表記ゆれは潰す、同名の別法人は残す。この2つを同時に満たす必要があります。
正規化ルール(この順に適用)
- 全角英数→半角、半角カナ→全角例:
KM精密工業→KM精密工業 - 法人格の表記を除去(株式会社/(株)/㈱/有限会社/合同会社 …)例:
株式会社丸川精機→丸川精機 - 空白・中黒・ハイフンを除去例:
KM精密 工業→KM精密工業 - 英字は小文字化例:
KM精密工業→km精密工業
除外した5件の内訳
除外の理由は3種類あり、性質が異なります。重複として除外したのは2件だけです。
表7除外5件の内訳
| 除外理由 | 件数 | 該当No |
|---|---|---|
| 重複(表記ゆれ) | 2件 | No.101・No.102 |
| 同名別法人と判定(重複ではない/別要件で除外) | 1件 | No.103 |
| 従業員数レンジ外 | 2件 | No.104・No.105 |
① 正規化で同一と判定し、重複として除外した2件
どちらも、原本の表記は違って見えますが、正規化すると社名が一致し、電話番号の下4桁も一致しました。同じ会社が別の出典から2回入ったケースです。より新しい・一次に近い側を残し、もう一方を除外しています。
表の網掛けの行は、2つの行で値が一致した項目です(一致:正規化した会社名・電話番号・重複判定キー)。
除外した行を読み込んでいます…
② 正規化名が一致しても、別法人と判定した1件(重複としては除外していない)
正規化した社名は一致しますが、電話番号の下4桁が違うため重複判定キーが別の値になり、別法人と判定しました。ここで社名だけを見て潰していたら、実在する取引先候補を1社失っていたことになります。
なお、この行が除外リストに載っているのは重複だからではありません。自社サイトを持たない=§2の取得条件外という、まったく別の理由です。
該当行を読み込んでいます…
③ 取得条件で外した2件(従業員数レンジ外)
重複とは関係なく、§2の条件に合わないため外した2件です。どちらも境界の近くだったため、目視で再確認しています。
該当行を読み込んでいます…
除外した行は消しません。納品ファイルの「除外」シートに、除外理由と備考をつけて同梱します。除外の履歴そのものが、手順を実行した証拠になります。あとから条件を変えたくなったとき、除外行が残っていれば拾い直せます。
§6証跡の設計
「どこから取ったか・いつ取ったか・どう確認したか」を、行ごとに残します。
証跡の列が無いリストは、合っているかどうか誰にも分からないデータになります。渡された側は、全部を自分で調べ直すか、そのまま信じて使うかの二択になってしまいます。だから証跡は4列に分けて、行ごとに持たせます。
表12証跡4列の役割
| 列 | 何のために必要か |
|---|---|
| 取得元 | 公式サイトなのか、名簿なのか、求人媒体なのか。情報の性質と鮮度が変わります。同じ会社が複数の出典に出てきたときの採否判断にも使います。 |
| 取得元URL | 後から再検証できます。発注者ご自身でも裏を取れます。「この行はどこから来たのか」に、行単位で答えられる状態にします。 |
| 取得日 | 企業情報は変わります。従業員数も窓口も移転もあります。いつ時点の情報かを明示しておくと、次の更新時に差分だけを見直せます。 |
| 確認方法 | 自動取得したままなのか、目視で突合したのかを区別します。精度の期待値が変わるため、混ぜずに記録します。 |
この見本での実測
証跡の集計を読み込んでいます…
証跡4列の欠損率はいずれも0.0%です(§7)。100件すべてに、出典・URL・取得日・確認方法が入っています。つまり、どの行についても「なぜこの情報がここにあるのか」を後から追えます。
ひとつ明記しておきます。実案件ではURLの生死をHTTPステータスで機械確認し、404や接続不可の行を洗い出しますが、この見本は架空URLのため実施していません。やっていないことを、やったようには書きません。
§7品質チェックの実測結果
数値はすべて、生成したデータそのものから機械的に算出しています。手入力の数値はありません。
重複の検証
生データ105件のうち、重複判定キーが一致したペアは2組でした。同名別法人(正規化名は一致・電話下4桁が相違)は1組で、これは重複ではないと判定しています。除外後の採用100件では、重複判定キーが100種/100行。重複は0件です。
形式の統一率(正規表現による機械検証・105件ベース)
表15形式の統一率(105件ベース)
| 項目 | 判定に使った正規表現 | 統一率 |
|---|---|---|
| 電話番号 | ^03-4400-0\d{3}$ | 100.0% |
| 郵便番号 | ^\d{3}-\d{4}$ | 100.0% |
| 取得日 | ^\d{4}-\d{2}-\d{2}$ | 100.0% |
| URL系3列 計268本 (URL・問い合わせURL・取得元URL) | ^https://[\w.\-]+\.example\.(com|jp) | 100.0% |
形式が揃っていないと、Excelでの並べ替え・フィルタ・突合がその場で壊れます。渡す前に正規表現で全件を判定しています。
列ごとの欠損率(採用100件ベース・全24列)
欠損率を読み込んでいます…
「問い合わせURL」の欠損42件は構造上のものです。問い合わせ導線が「フォーム」の行にだけ値が入る仕様のため、フォーム以外の42件が空欄になります。「代表者名」「設立年」「資本金」の欠損は、出典に記載がない/非公開の行です。推測では埋めず、空欄のまま残しています。埋めた瞬間に、そのリストは検証できなくなるからです。
分布
分布を読み込んでいます…
内部整合の検証
件数・重複・形式のほかに、データ同士のつじつまも機械で確認しています。郵便番号の上3桁と市区町村が対応しているか、市区町村と都道府県が対応しているか、問い合わせURLがフォームの行にだけ入っているか、といった項目です。
内部整合の検証:全項目の結果を開く
検証結果を読み込んでいます…
未検証事項
この見本でやっていないことも書いておきます。
- URLの生死(HTTPステータス)は未検証。 実案件では全URLにHTTPステータスの機械確認をかけ、404・接続不可の行を洗い出しますが、本見本は架空URL(
example.com/example.jp)のため実施していません。 - 実在企業との突合は未実施。 全データが架空であり、法人番号・登記情報等との照合は行っていません(照合する対象が存在しません)。
- 会社名カナの妥当性。 社名の構成要素と読みの対応表に対して機械突合しており全行一致ですが、対応表そのものの読みの誤りは検出できません(生成元と検証元が同じ対応表であるため)。
- 郵便番号は上3桁のみ実在値(市区町村に対応)で、下4桁は架空のため、実在の郵便番号としての正当性は検証していません。
§8納品形式と進め方
このページに載せているデータは、そのままダウンロードできます。
納品形式
XLSXは3シート構成です。「リスト」(採用100件・24列)、「除外」(除外5件・24列+除外理由・備考)、「列定義」(24列の役割と説明)。除外の記録と列の意味を、データと同じファイルの中に持たせています。
CSVはUTF-8のBOM付きで書き出しています。Excelでそのまま開いても文字化けしません。CSVは1ファイル1表の形式のため、採用100件・24列を収めています(除外行はXLSXの「除外」シートをご覧ください)。ご希望があればGoogleスプレッドシートでの共有にも対応します。
進め方
いきなり全件は作りません。ずれたまま100件作ると、直すときも100件になるからです。
- 取得条件のすり合わせ 「含む」と「含まない」を§2の形で文章にして、着手前に確認します。判断に迷う点(支店の扱い、サイトを持たない会社、業種の線引き)はここで潰します。ここで決めた条件が、後の判断基準になります。
- サンプル10件で合意 先に10件だけ作ってお渡しします。列の並び、粒度、書式、証跡の残し方をここで確認していただき、直すところを直します。全件を作る前なら、修正は10件分で済みます。
- 本番作成と検証 合意した条件で全件を作成し、§7と同じ検証(重複・形式・欠損・内部整合)を機械で回してから納品します。除外した行と、検証の実測値も一緒にお渡しします。
所要時間は、件数と取得条件によって変わります。取得元が公開情報だけで足りるのか、1件ずつ目視の突合が要るのかでも変わります。条件を確認したうえでお伝えします。
この見本と、実案件の関係
この見本では、首都圏の製造業100社という題材をひとつ選び、最後まで通しました。手順をお見せするために題材を固定しただけで、扱える範囲を示したものではありません。実際のご依頼では、次のように設計します。
表23この見本と、実案件の対比
| 項目 | この見本では | 実案件では |
|---|---|---|
| 題材 | 首都圏の製造業 | 業種・地域は問いません。企業リスト、店舗・施設リスト、個人事業主、求人・媒体調査、競合調査などに対応します。 |
| 件数 | 100件 | 数十件から数千件まで。件数が増えるほど、重複除外と証跡の設計が効いてきます。 |
| 項目 | 24列 | 固定ではありません。必要な項目を伺って組み直します。 |
| 納品形式 | XLSX・CSV | Googleスプレッドシートでの共有、指定テンプレートへの流し込みにも対応します。 |