CSV 検証・データ品質分析
データ変換
読み込み中
ツールを読み込んでいます
ツールを準備しています。残り時間はまだわかりません。
このツールの処理はすべてブラウザー内で行われ、入力内容はサーバーへ送信されません。
このツールについて
CSV・TSV を整形、結合、インポートする前に、実際の内容を確認できます。引用符、ヘッダー、行幅の診断に加え、列ごとの欠損状態、完全一致で数えた異なる値、重複をローカルで集計します。複合キー、数値列、厳密な日付書式は必要な場合だけ選択します。先頭ゼロ付きの識別子や長い整数を含め、元の文字列は変わりません。件数と行位置は調査の手がかりです。根拠のない総合品質スコアを付けたり、業務上の正しさを保証したりはしません。セル値の例示は初期状態では無効で、処理はキャンセル可能なブラウザーのワーカーで実行します。
主な用途
- 顧客データの末尾フィールド欠落、空文字列、空白だけのセル、明示した N/A マーカーを別々に数え、元データの問題を調べます。
- スナップショット比較や表の結合前に、行全体の重複や order_id + line_id の複合キー重複を確認します。行を削除せず、重複グループと余分な行の数を把握できます。
- 列の推定型を確認してから、測定値の列だけに数値集計を、日付列だけに厳密な暦の検査を有効にして、整形ルールを検討します。
使い方
- 1.区切り付きテキストを貼り付けるか、UTF-8、UTF-16 LE、UTF-16 BE のファイルを選びます。カンマ、タブ、セミコロン、縦線と、先頭レコードがヘッダーかどうかを指定してください。設定を確認してから結果を解釈します。引用符内の改行は新しいデータ行ではなく、同じ CSV レコードの一部です。 必要に応じて、元データで使う null 相当のマーカー文字列を正確に指定します。大文字・小文字を区別したセル全体の一致で、前後の空白除去、大小文字変換、null への変換はしません。複合キーを確認する場合は列を位置で選びます。空のヘッダーや同名のヘッダーがあっても、位置による指定は曖昧になりません。
- 2.数量を表す列だけに数値集計を有効にします。元データの正確な日付書式を選ぶと、全列の日付推定に使われます。期待する仕様が分かる場合は、列ごとに必須、一意性、型のルールを追加し、日付列には日付型ルールを指定します。元のセル文字列を表示したい場合だけ例示を有効にしてください。初期状態では件数、位置、ヘッダー、設定を含み、例示セルは含みません。
- 3.分析を実行し、構造上の問題、列ごとの件数、推定型との不一致、行全体の重複、選択キーの重複を確認します。指摘は見直しの材料であり、自動修正の指示ではありません。引用符の誤りは完全な集計の前に修正してください。入力や設定を変更すると古い結果は無効になるため、再実行して現在の結果を確認します。 プライバシー設定を確認してから JSON または CSV の品質レポートを保存します。CSV の数式対策は有効のままにしてください。生 CSV は警告付きで明示的に選ぶ形式です。JSON は含まれる文字列をデータとして保持します。出力は調査結果で、整形済みの元テーブルではありません。修正には CSV 表示・整形ツールを使い、ここに戻って再確認できます。キャンセルで実行中の処理を停止し、クリアで現在の入力と結果を削除します。
再現できる CSV 品質チェック
四種類の欠損状態を区別する
{
"input": "id,value\n1\n2,\n3, \n4,N/A\n5,null\n6,n/a\n7,N/A",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [
"N/A"
],
"keys": [],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"summary": {
"rows": 7,
"columns": 2,
"cells": 13,
"missing": 1,
"empty": 1,
"whitespace": 1,
"nullMarker": 2,
"raggedRows": 1
},
"columns": [
{
"index": 0
},
{
"index": 1,
"present": 6,
"unique": 5,
"duplicateValues": 1,
"missing": 1,
"empty": 1,
"whitespace": 1,
"nullMarker": 2
}
]
}二列目には、フィールド欠落一件、存在する空文字列一件、空白だけの値一件、完全一致する N/A マーカー二件があります。小文字の n/a と null は通常のテキストです。空文字列・空白・マーカーも含め、存在する六つの文字列から異なる値を数えると五種類です。各例の出力は、完全なレポートではなく関連するフィールドを抜粋しています。
同じレコードと同じ ID を区別する
{
"input": "id,value\nA,x\nA,x\nA,y\nB,\nB\nC,",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [
0
],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"summary": {
"rows": 6,
"missing": 1,
"empty": 2
},
"duplicates": {
"records": {
"groups": 1,
"duplicateRows": 1,
"participatingRows": 2,
"examples": [
{
"row": 2,
"previousRow": 1
}
]
},
"keys": {
"groups": 2,
"duplicateRows": 3,
"participatingRows": 5,
"examples": [
{
"row": 2,
"previousRow": 1
},
{
"row": 3,
"previousRow": 1
},
{
"row": 5,
"previousRow": 4
}
]
}
}
}一行目と二行目は同じレコードです。三行目も A キーですが値が異なります。二つの B 行はキーが同じでも、空文字列とフィールド欠落の違いで行全体は一致しません。二つのキー重複グループに五行が関係し、各先頭行を除く余分な行は三行です。削除は行いません。
単純連結による複合キーの衝突を避ける
{
"input": "region,id\nnorth,001\nnorth,1\nsouth,001\nnorth,001\nnorth\nnorth,\na|b,c\na,b|c",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [
0,
1
],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"summary": {
"rows": 8,
"missing": 1,
"empty": 1
},
"duplicates": {
"keys": {
"groups": 1,
"duplicateRows": 1,
"participatingRows": 2,
"examples": [
{
"row": 4,
"previousRow": 1
}
]
}
}
}四行目だけが、一行目の north + 001 という完全なキーを繰り返しています。001 と 1、id の欠落と空文字列はそれぞれ別です。[a|b, c] と [a, b|c] は、縦線で単純連結すると同じに見えても別のキーです。リクエストの列インデックスは 0 始まりで、診断のデータ行番号は 1 始まりです。
先頭ゼロと隣り合う長い ID を保持する
{
"input": "code\n001\n1\n9007199254740992\n9007199254740993\n001",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [
0
],
"dateFormat": "YYYY-MM-DD",
"constraints": [
{
"column": 0,
"required": false,
"unique": true,
"type": "any"
}
],
"includeExamples": false
}
}{
"columns": [
{
"index": 0,
"present": 5,
"unique": 4,
"duplicateValues": 1,
"types": {
"number": 1,
"date": 0,
"boolean": 0,
"identifier": 4,
"text": 0
},
"inferred": "mixed",
"conflicts": 1,
"numeric": {
"accepted": 1,
"excluded": 4,
"min": "1",
"max": "1",
"sum": "1",
"mean": 1,
"meanApproximate": true
}
}
],
"summary": {
"constraintViolations": 1
},
"duplicates": {
"records": {
"groups": 1,
"duplicateRows": 1,
"participatingRows": 2
}
}
}二つの長い ID は異なる文字列のままで、001 を 1 に変換しません。数値集計に採用するのは正規表記の数量 1 だけです。識別子形のセル四件と数値一件があるため推定型は混在です。明示的な一意性ルールは二度目の 001 だけを指摘し、長い ID を同一視しません。
対象外を数え、十進合計は正確に保つ
{
"input": "amount\n0.1\n0.2\n0.3\n001\n9007199254740992\n1e3\n+2\n 2 \nInfinity\n0.1234567\n\"\"",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [
0
],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"summary": {
"rows": 11,
"empty": 1
},
"columns": [
{
"index": 0,
"numeric": {
"accepted": 3,
"excluded": 7,
"min": "0.1",
"max": "0.3",
"sum": "0.6",
"mean": 0.19999999999999998,
"meanApproximate": true
}
}
]
}採用するのは 0.1、0.2、0.3 だけで、正確な十進合計は文字列 0.6 です。識別子、指数・先頭プラス・前後空白の表記、非有限のテキスト、六桁を超える小数の計七件は対象外です。空セルは欠損分類で、数値の除外件数には含めません。平均は明示的に近似値で、浮動小数点の末尾誤差が正確な合計を変えることはありません。
存在しない日付と日付ルール全体を区別する
{
"input": "date\n29/02/2024\n29/02/2023\n31/04/2024\n01/02/2024\n\"\"\n1/2/2024\nN/A",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [
"N/A"
],
"keys": [],
"numericColumns": [],
"dateFormat": "DD/MM/YYYY",
"constraints": [
{
"column": 0,
"required": false,
"unique": false,
"type": "date"
}
],
"includeExamples": false
}
}{
"summary": {
"rows": 7,
"empty": 1,
"nullMarker": 1,
"invalidDates": 2,
"constraintViolations": 3
},
"columns": [
{
"index": 0,
"types": {
"number": 0,
"date": 2,
"boolean": 0,
"identifier": 0,
"text": 3
},
"invalidDates": 2
}
]
}2024 年の閏日と 2 月 1 日は DD/MM/YYYY として有効です。2023 年の閏日と 4 月 31 日は指定書式の形には合いますが暦に存在しないため、無効日付は二件です。日付型ルールはゼロ埋めのない 1/2/2024 も拒否し、ルール違反は計三件になります。必須指定がないため、空文字列と指定済みの N/A は型検査をスキップします。
月を先に書く書式を明示する
{
"input": "date\n01/02/2024\n12/31/2024\n31/12/2024",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [],
"dateFormat": "MM/DD/YYYY",
"constraints": [
{
"column": 0,
"required": false,
"unique": false,
"type": "date"
}
],
"includeExamples": false
}
}{
"summary": {
"invalidDates": 1,
"constraintViolations": 1
},
"columns": [
{
"index": 0,
"types": {
"number": 0,
"date": 2,
"boolean": 0,
"identifier": 0,
"text": 1
},
"inferred": "mixed"
}
]
}MM/DD/YYYY では 01/02/2024 は 1 月 2 日となり、12/31/2024 も有効です。31 月は存在しないため、31/12/2024 は無効です。DD/MM/YYYY を選ぶと最初の文字列の意味が変わります。レポートは分類するだけで、文字列を書き換えません。
必須・一意性・型のルールを明示する
{
"input": "id,amount,flag\nA,10,true\nA,x,TRUE\n,20,false\nB,,false\nC,30,yes",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [
{
"column": 0,
"required": true,
"unique": true,
"type": "any"
},
{
"column": 1,
"required": true,
"unique": false,
"type": "number"
},
{
"column": 2,
"required": false,
"unique": false,
"type": "boolean"
}
],
"includeExamples": false
}
}{
"summary": {
"rows": 5,
"empty": 2,
"constraintViolations": 6,
"typeConflicts": 3
},
"columns": [
{
"index": 0,
"inferred": "text"
},
{
"index": 1,
"inferred": "mixed",
"conflicts": 1
},
{
"index": 2,
"inferred": "mixed",
"conflicts": 2
}
]
}明示ルールの違反は、A の重複、id の欠損、数値でない x、amount の欠損、ブール値でない TRUE と yes の六件です。ブール値として認めるのは小文字の true と false だけです。推定型の不一致三件はルール違反六件とは別の指標であり、足して異なる不良セルの数とすることはできません。
ヘッダー名を変えずに診断する
{
"input": ", id ,id\nA,B\nC,D,E,F",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"summary": {
"rows": 2,
"columns": 4,
"expectedColumns": 3,
"cells": 6,
"raggedRows": 2,
"headerIssues": 2,
"missing": 2,
"structuralValid": false
},
"columns": [
{
"index": 0,
"name": ""
},
{
"index": 1,
"name": " id "
},
{
"index": 2,
"name": "id"
},
{
"index": 3,
"name": "column4"
}
],
"issues": [
{
"code": "emptyHeader",
"row": 0,
"column": 1
},
{
"code": "duplicateHeader",
"row": 0,
"column": 3,
"expected": 2
},
{
"code": "ragged",
"row": 1,
"expected": 3,
"actual": 2
},
{
"code": "ragged",
"row": 2,
"expected": 3,
"actual": 4
}
]
}先頭の空ヘッダーを指摘します。重複診断では前後空白を除いて比較するため id は直前の空白付きヘッダーと重複しますが、表示名は元のままです。ヘッダーは三フィールドなので、二フィールドの行も四フィールドの行も幅の不一致です。四列目も分析するため、短い一行目には欠けたセルが二つあります。ヘッダーの診断行番号は 0 です。
複数行セルがあるヘッダーなし TSV を分析する
{
"input": "001\t\"first\nline\"\n002\t\"say \"\"yes\"\"\"\n001\t\"first\nline\"",
"options": {
"delimiter": "\t",
"header": false,
"nullMarkers": [],
"keys": [
0
],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": true
}
}{
"summary": {
"rows": 3,
"columns": 2,
"cells": 6,
"structuralValid": true
},
"columns": [
{
"index": 0,
"name": "column1",
"inferred": "identifier"
},
{
"index": 1,
"name": "column2",
"examples": [
{
"row": 1,
"value": "first\nline",
"truncated": false
},
{
"row": 2,
"value": "say \"yes\"",
"truncated": false
},
{
"row": 3,
"value": "first\nline",
"truncated": false
}
]
}
],
"duplicates": {
"records": {
"groups": 1,
"duplicateRows": 1,
"participatingRows": 2
},
"keys": {
"groups": 1,
"duplicateRows": 1,
"participatingRows": 2
}
}
}タブを選び、先頭レコードもデータとして扱います。引用符内の改行は一つのフィールドに残り、二重引用符は文字としての引用符になります。物理的な行数に関係なくデータは三レコードです。column1 と column2 は位置ラベルで、例示を有効にすると解析後の元のセル文字列を表示します。
初期状態ではセルの例示を含めない
{
"input": "id,note\n001,=1+1\n002,<script>alert(1)</script>",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"exact": true,
"examplesIncluded": false,
"columns": [
{
"index": 0,
"examples": []
},
{
"index": 1,
"examples": []
}
],
"issues": []
}どちらの列の例示リストも初期状態では空です。数式や HTML に見える文字列もテキストとして分析し、数式やスクリプトを実行しません。レポートにはヘッダーと設定が残るため、この設定は匿名化ではありません。元の行全体を出力する形式も提供しません。
上限付き例示を有効にし、マスキングと混同しない
{
"input": "=header\n=1+1\n<img src=x onerror=alert(1)>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nlast value",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": true
}
}{
"examplesIncluded": true,
"columns": [
{
"index": 0,
"name": "=header",
"examples": [
{
"row": 1,
"value": "=1+1",
"truncated": false
},
{
"row": 2,
"value": "<img src=x onerror=alert(1)>",
"truncated": false
},
{
"row": 3,
"value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx…",
"truncated": true
}
]
}
]
}表示するのは値がある先頭三件で、三件目は UTF-16 コード単位 80 個分に短縮して省略記号を付けます。四件目は表示しませんが集計には含めます。画面は安全なテキスト表示です。保護付き CSV は数式に見えるヘッダーと例示にアポストロフィを付け、JSON は文字列を保持します。短縮も数式対策も非公開の内容を取り除く処理ではありません。
閉じていない引用符で分析を停止する
{
"input": "id,note\n1,\"unfinished",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"error": "syntax"
}開始した引用符が閉じていないため、パーサーは syntax を返し、品質レポートは作成しません。空のデータや正常終了として扱わず、元の引用符を修正してください。パーサーのレコード座標はヘッダーを含み、通常レポートのデータ行座標は含みません。
ヘッダーだけでは観測データがないと分かる
{
"input": "id,amount",
"options": {
"delimiter": ",",
"header": true,
"nullMarkers": [],
"keys": [],
"numericColumns": [
1
],
"dateFormat": "YYYY-MM-DD",
"constraints": [],
"includeExamples": false
}
}{
"summary": {
"rows": 0,
"columns": 2,
"cells": 0,
"structuralValid": true
},
"columns": [
{
"index": 0,
"inferred": "none",
"unique": 0
},
{
"index": 1,
"inferred": "none",
"unique": 0,
"numeric": {
"accepted": 0,
"excluded": 0,
"min": null,
"max": null,
"sum": "0",
"mean": null,
"meanApproximate": true
}
}
]
}有効なヘッダーがあっても、値が存在する証拠にはなりません。どちらの列にも推定型や異なる値はありません。選択した数値列は採用件数がゼロなので、最小・最大・平均は null、合計は文字列 0 です。ゼロという測定値や、データが完全であることを意味しません。
データ品質確認でよくある間違い
- 区切り文字やヘッダー設定が違うまま結果を採用する。
- 欠落、空文字列、空白だけの値、null マーカー文字列を同じものとして扱う。
- 複数の注文明細が同じ order_id を使うのに、order_id だけを一意キーに選ぶ。
- 数字で書かれているという理由で、先頭ゼロ付き ID や長い口座識別子を数量として扱う。
- 推定型を業務ルールの検証結果と捉える、または平均がすべての非空セルを含むと思い込む。
- 曖昧な日付書式を推測する、または無効な日付が自動修復されると考える。
- 例示を有効にして共有し、件数制限や短縮が匿名化だと思い込む。
制限と注意事項
- 区切り文字はカンマ、タブ、セミコロン、縦線を明示し、自動判定はしません。UTF-8、UTF-16 LE、UTF-16 BE のファイルと対応する任意の BOM、引用符内の区切り文字、二重引用符のエスケープ、複数行セルに対応します。不正な引用符やデコード失敗では分析を停止し、誤解を招く部分集計を返しません。空白・重複ヘッダーと不揃いな行幅を診断します。ヘッダー診断では前後空白を除いて比較しますが、表示名とセル値は変えません。列は位置で識別し、同名を無断で統合しません。ヘッダーなしでは位置ラベルを生成します。データ行番号はヘッダーを除き、ヘッダーの問題は行 0 とします。パーサーのレコード番号はヘッダーを含み、複数行セルがあると物理的な行番号とは異なります。
- 末尾フィールドの欠落、存在する空文字列、空白だけの文字列、正確に指定した null マーカーは別の状態です。空白の判定は ECMAScript trim() の空白集合を使いますが、保存された値は変えません。null や N/A という文字列は、明示的に指定するまで通常のテキストです。欠損集計は必須項目の検証ではなく、任意項目の空欄は正しい場合もあります。異なる値と重複は解析後の文字列で完全一致を比較するため、001 と 1、A と a、空白と空文字列は別です。欠けたキー要素と空の要素も区別します。複合キーは区切り文字で単純連結せず、要素ごとに比較します。キーが重複していても、どちらが正しいかは判断できません。 異なる値の件数には空文字列・空白・マーカーを含むすべての存在する文字列を含め、欠けたセルは含めません。余分な重複値の件数は、存在するセル数から異なる値の件数を引いた数です。空文字列と空白の分類は指定マーカーより優先し、四つの欠損分類は重複しません。
- 推定型と型の不一致はヒューリスティックで、正式なスキーマや業務検証ではありません。複数の型がある列は混在とし、不一致数は非欠損セル数から最大の型グループの数を引いた値です。同数でも混在のままで、位置付き不一致の判定は数値、日付、ブール、識別子、テキストの順に同点を解消しますが、意味上の優劣ではありません。ブール値は小文字の true と false だけです。先頭ゼロまたは 16 桁以上の整数形文字列は識別子形として扱います。値の強制変換、書き換え、実行はしません。数値集計は明示的に有効にします。採用できるのは、任意のマイナス符号、余分な先頭ゼロのない整数、任意の一~六桁の小数からなる表記で、有効数字は 15 桁以下、絶対値は Number.MAX_SAFE_INTEGER 以下です。先頭プラス、指数表記、前後空白、Infinity、NaN、より高い精度は対象外です。除外件数は不適格な非欠損文字列だけを数えます。最小・最大・合計は正確な十進文字列ですが、平均は明示的に近似の二進浮動小数点数であり、厳密な十進会計結果ではありません。 日付書式は YYYY-MM-DD、DD/MM/YYYY、MM/DD/YYYY、YYYY/MM/DD のいずれかです。各部分の桁数が正しく、0001~9999 年の先発グレゴリオ暦に存在する日付だけを有効とします。地域の推測、タイムスタンプ解釈、タイムゾーン変換、自動修復はしません。無効日付の件数は、選択書式の形には合うものの暦に存在しない非欠損文字列です。列の日付型ルールは書式の形が違う値も拒否します。これらの件数は重なる場合があり、異なる不良セル数として足せません。必須ルールは四種類の欠損を拒否します。一意性ルールは非欠損の元文字列を完全一致で比較し、最初以降の各出現を指摘します。数値・日付・ブールのルールは各定義の表記を検証し、テキストは数値形も含めてすべての非欠損文字列を受け入れます。型と一意性は欠損分類をスキップするため、必要なら必須も指定します。制約は明示指定で、元データは変わりません。
- ファイルのバイト数とデコード後の UTF-8 テキストはそれぞれ 2 MiB、データは 10,000 行、128 列、実在セル 200,000 個までです。列別の正確な異なる値集合は合計 200,000 件まで、レポートは 1 MiB までです。位置付き問題は先頭 500 件を保持し、打ち切りフラグと完全な件数を示します。列の例示リストは最大三件です。保持する問題レコードにも個別の例示が付く場合があるため、列ごと三件は公開する値全体の上限ではありません。例示の抜粋は UTF-16 コード単位 80 個、ヘッダーの抜粋は 160 個までで、サロゲートペアを分断せず、短縮時は省略記号を加えます。マーカーは最大 100 個、各 200 コード単位までです。件数はプレビュー標本だけでなく、受理した入力全体を対象にします。欠けたセルは最も広い表幅に対して数え、実在セル数には欠けた位置を含めません。分析上限を超えると停止します。ワーカー、キャンセル、タイムアウトは負荷を軽減しますが、厳密なメモリー隔離環境ではありません。大きい入力にはローカルのデータツールを使ってください。
- セルの例示は初期状態では無効です。有効にすると画面や出力に非公開データが含まれる場合があり、件数制限や短縮は匿名化ではありません。例示を無効にしても、ヘッダー、指定マーカー、オプション、位置、集計値は含まれ、機密情報になり得ます。レポートは元の入力行全体をテーブルとして出力しません。このツールは入力や結果をアップロードせず、ブラウザーストレージにも保存しません。処理データはクリア、置き換え、ページを閉じるまでページやワーカーのメモリーに保持します。保存・共有したファイルはその場所に残り、ツールからは管理できません。 保護付き CSV は数式に見える元データの先頭にアポストロフィを付けるため、出力テキストが変わります。CSV の引用符だけでは数式インジェクションを防げず、すべての表計算ソフトや再保存後のファイルで安全になる保証もありません。JSON は有効にした例示を文字列として保持し、内容を実行しませんが、選択した例示値自体は含みます。どちらのレポートも、そのまま取り込める修復済みテーブル、スキーマ契約、業務ルール監査、公開してよいデータの保証ではありません。
よくある質問
欠落、空文字列、空白、null マーカーを分ける理由は?
ヘッダーが id,value のとき、7 だけのレコードでは value が欠けています。7, には存在する空文字列があり、7, には空白テキストがあります。7,N/A の N/A は文字列で、明示的に指定した場合だけマーカーとして数えます。原因が異なる可能性があるため、一つにまとめると調査の手がかりが失われます。元データを変えずに、それぞれを報告します。
行全体の重複とキー重複はどう違いますか?
行全体の重複は、行の長さと全位置の文字列が完全に同じ場合です。選択キーの重複は、指定した位置の列だけを組として比較します。order_id が同じでも status が異なる二行は、キー重複ですが同一行ではありません。三行のグループなら関係する行は三行で、先頭の一行を除く余分な行は二行です。行の削除や採用する行の選択はしません。
推定された型は、その列で必須の型ですか?
いいえ。観測した表記の要約で、混在列も意図どおりの場合があります。不一致数は最大の型グループ以外のセル数であり、外部スキーマの検証ではありません。期待する仕様が分かれば必須、一意性、型のルールを指定します。必須は欠落・空文字列・空白・マーカーを対象とし、一意性はこれらを除いた元文字列を完全一致で比較します。数値集計には明示選択が必要で、条件内の最小・最大・合計は正確な十進値ですが、平均は近似値です。 まず区切り文字、引用符、想定外のヘッダーや行幅を確認します。次に欠損表記の決まりと、選んだキーで一件を識別できるかを確かめます。日付・数値検査は意味が明確な列にだけ有効にしてください。CSV 表示・整形ツールで明示した修正を行うか、出力元を調べてから再分析します。目標にする根拠のない点数はありません。取り込み先と業務ルールに照らして、重要な指摘を判断してください。
元のセル値を含めずにレポートを共有できますか?
例示を無効のままにしてください。件数と行位置は調査に役立ちますが、ヘッダー、指定マーカー、オプション、集計値は残り、機密データを識別できる場合もあるため共有前に確認します。例示を有効にすると上限付きで元の値を含めます。短縮はマスキングではありません。ローカル処理や数式対策も匿名化ではありません。