Excelでのデータクリーニング

クリーンなデータが譲れない理由

汚れたデータはExcelの生産性を静かに蝕むものです。余分なスペース、不整合な書式、重複レコード、欠損値は数式を壊し、ピボットテーブルを混乱させ、誤った数字に基づく意思決定を招きます。調査によると、データ専門家は時間の60〜80%を分析ではなくデータのクリーニングに費やしていることが一貫して示されています。

朗報:Excelにはデータクリーニング専用に設計された強力な組み込みツールがあります。何千行も手動でスキャンする必要はありません。このガイドでは、データ準備時間を半減させる主要なテクニックを紹介します。

分割画面比較:左側は日付形式の不一致(MM/DD/YYYY vs DD-MM-YYYY)、名前に余分なスペース、市区町村/州/郵便番号が1列に混在、重複行が黄色で強調表示された乱雑なデータ。右側はクリーニング後の同じデータ:統一された日付、トリミングされたテキスト、分割された住所列、重複が削除されています
図1 — ビフォーアフター:同じデータセットを変換。右側のクリーンデータは信頼性の高い数式、正確なピボットテーブル、信頼できる分析を可能にします

ステップバイステップ:実際のデータセットをクリーンアップする

シナリオ:レガシーシステムからCSVエクスポートを受け取りました。列Aには余分なスペースを含む名前、列Bには「市区町村, 都道府県 郵便番号」が1つのセルに結合されており、列Cには混在した日付形式、そして全体に重複行が散在しています。

ステップ1 — 必ず最初にコピーで作業する

  1. シートタブを右クリック > 移動またはコピー > コピーを作成する。コピー名を「Cleaned」にします。
  2. データの唯一のバージョンでクリーニングしないでください。クリーニング手順が失敗した場合でも、常に元のデータに戻ることができます。

ステップ2 — 重複行を削除する

  1. データ内の任意のセルをクリックし、Ctrl+Aを押してすべて選択します。
  2. データ > 重複の削除に移動します。
  3. 一意性を定義すべきでない列(同じレコードでも異なるタイムスタンプなど)のチェックを外します。キー列のみをチェック:例えば名前と日付です。
  4. OKをクリックします。Excelが削除された重複数と残りの一意な行数を報告します。
各列のチェックボックス付き重複の削除ダイアログ:名前、住所、日付、金額。名前と日付のみがチェックされています。ダイアログの下のワークシートには、削除されようとしている黄色で強調された重複行が表示されています
図2 — 重複の削除ダイアログ。重複を定義する列を慎重に選択してください。すべての列をチェックしても重複はほとんど見つかりません

ステップ3 — TRIMとCLEANでテキストをクリーンアップする

  1. 名前列の隣に新しい列を挿入します(列Bを右クリック > 挿入)。ラベルを「Name_Clean」とします。
  2. 最初のデータ行に次のように入力:=TRIM(CLEAN(A2))
  3. フィルハンドルをダブルクリックして下までコピーします。TRIMは先頭、末尾、余分なスペースを削除します。CLEANは印刷不可能な文字(システムエクスポートでよく見られます)を削除します。
  4. クリーンアップした列をコピーし、元の列を右クリック > 形式を選択して貼り付け > 値で数式をクリーンなテキストに置き換えます。ヘルパー列を削除します。

ステップ4 — 「区切り位置」で「市区町村, 都道府県 郵便番号」を分割する

  1. 結合された住所列を選択します。データ > 区切り位置。
  2. 区切り文字を選択し、次へをクリック。カンマを区切り文字としてチェックします。
  3. プレビューに分割結果が表示されます。次へをクリック。
  4. 各出力列のデータ形式を設定:「市区町村」は文字列、「都道府県 郵便番号」は文字列。完了をクリック。
  5. 次に「都道府県 郵便番号」を再度分割:選択して、区切り位置 > 区切り文字 > スペース。これで市区町村、都道府県、郵便番号の3つのクリーンな列ができました。
Text to Columns wizard Step 2: Delimiters section with Comma checked. Data preview below shows the column split into two parts: 'San Francisco' and 'CA 94105'. The original combined column is visible in the background.
図3 — 区切り位置指定ウィザードの動作。プレビューでデータの分割方法を確認してから確定できます

ステップ5 — 日付を標準化する

  1. 日付列を選択します。データ > 区切り位置 > 区切り文字 > すべての区切り文字のチェックを外す > 次へ。
  2. 「列のデータ形式」で日付を選択し、データに一致する形式(YMD、MDYなど)を選びます。
  3. 完了をクリック。Excelがすべての日付を一貫したソート可能な形式に変換します。
  4. まだ正しく表示されない日付には、統一書式を適用:Ctrl+1 > 表示形式 > 日付 > 希望の表示形式を選択します。

主要テクニック

テクニック1 — パターン認識のためのフラッシュフィル

フラッシュフィル(Ctrl+E)は手動編集を監視し、検出されたパターンに基づいて残りを自動補完します。

  1. フルネームの列の隣に、最初のセルから名を入力します。Enterを押します。
  2. 2番目の名前を入力し始めます。Excelが提案する補完のグレーのプレビューを表示します。
  3. Ctrl+Eを押して受け入れます。フラッシュフィルが全行から瞬時に名を抽出します。分割、結合、書式設定、テキストの一部抽出に使えます。

テクニック2 — ワイルドカードを使った検索と置換

  1. Ctrl+Hを押して検索と置換を開きます。
  2. 製品コードのハイフン以降をすべて削除するには:検索に-*、置換に何も入れない。
  3. *は任意の文字数に一致。?はちょうど1文字に一致。
  4. 置換を実行する前に必ずすべて検索をクリックして一致するものをプレビューしてください。

よくある間違い

  1. 元のファイルでクリーニングする。 必ずコピーで作業してください。クリーニングは不可逆であることが多く — TRIMと区切り位置は元のデータ形式を破壊します。
  2. 分析せずに欠損データのある行を削除する。 空白セルはデータ収集の問題を示している可能性があり、無駄なレコードとは限りません。削除する前に、欠損データがランダムか体系的かを確認してください。
  3. TRIMは改行なしスペース(文字コード160)を削除しない。 Webデータにはよく含まれています。TRIMの前に=SUBSTITUTE(A2, CHAR(160), " ")を使用して空白を完全にクリーンアップします。
  4. Excelが数値の先頭ゼロを削除する。 郵便番号、製品ID、社員番号では、インポート前に列を文字列として書式設定するか、=TEXT(A2, "00000")で先頭ゼロを復元します。

上級ヒント

練習用テンプレートをダウンロード
この記事について質問や誤りを見つけましたか?