ツールへ移動
ViewCSV
ファイルはアップロードされません

CSV ファイルをチェック

signups.csv· サンプル7 行 · 6 列
列のルール(任意)
ルールは Table Schema(Frictionless Data)形式の JSON で保存されるため、他のツールでも読み込めます。
エラー 4 件、警告 2 件
レポート
行列問題値
1name先頭または末尾に空白があります。 陽翔 佐藤
2email有効なメールアドレスではありません。not-an-email
2signup_date有効な日付(YYYY-MM-DD)ではありません。2026-02-30
6email有効なメールアドレスではありません。N/A
6signup_date有効な日付(YYYY-MM-DD)ではありません。11/03/2026
7name先頭または末尾に空白があります。結菜 渡辺

行番号は見出しの後のデータ行から数えます。引用符内の改行では新しい行になりません。

CSV ファイルを開くと、構造がチェックされます。各レコードのフィールド数が見出しと合っているか、列名の空や重複、不正な位置の引用符、改行コードの混在、空行を確認します。整数、日付、メール アドレス、必須、一意、許可する値、正規表現など、列ごとのルールを任意で追加でき、問題はそれぞれデータ行、列、値とともに一覧表示されます。ルールには Frictionless の Table Schema の用語を使います。ファイルはアップロードされず、ブラウザー内でチェックされます。

CSV ファイルをチェックする手順

  1. .csv、.tsv、.txt ファイルを開きます。区切り文字と UTF-8・UTF-16 の BOM は自動で判定されます。列の分かれ方がおかしい場合は、読み込み設定で別の区切り文字や従来の文字コードを選んでください。
  2. 必要に応じて、すべてのレコードが持つべき列数を入力します。空欄の場合は、見出し行の列数が使われます。
  3. 必要に応じて、確認したい列にルールを追加します。型、値が必須か一意か、許可する値、最小値と最大値、文字数の範囲、パターンを指定できます。
  4. チェックを実行し、レポートを確認します。まずエラー、次に警告の順に対応してください。値は CSV エディター で修正するか、CSV のクリーニング で整えてから、もう一度チェックします。

ルールを書く前に各列の型、空白、値の種類を確認するには、CSV の分析 でファイルの概要を調べてください。

構造のチェック

フィールド数(エラー)レコードのフィールド数が、見出し行または入力した列数より多いか少ない状態です。RFC 4180 では、すべてのレコードが同じ数のフィールドを持つことを前提としています。数が合わない場合、多くは引用符で囲まれていない区切り文字か、値の欠落が原因です。
空の見出し(エラー)列名が空か、空白だけです。レポートにその位置が表示されます。
重複した見出し(エラー)前後の空白を除くと同じになる列名が 2 つあります。レポートに両方の位置が表示されます。
不正な位置の引用符(警告)5" screen のように、引用符で囲まれていない値の中に引用符があります。値は書かれたとおりに保たれ、レポートにはファイル全体での件数が表示されます。
閉じ引用符の後の文字(警告)"abc"x のように、閉じ引用符の後、次の区切り文字までの間に文字があります。
改行コードの混在(警告)ファイル内で、レコードの区切りに CRLF、LF、CR が混在しています。レポートには種類ごとの件数が表示されます。
空行(警告)レコードの間に空の行があります。空行は読み飛ばされ、レポートでその件数が示されます。
前後の空白(警告)値の文字列の前後に空白があります。既定でオンです。空白だけの値は報告されません。

引用符で始まった値が閉じられていない場合は、その値が始まるレコードを示すエラーでチェックを中止します。ファイルの残りの部分をレコードに正しく分割できなくなるためです。

列のルール

型:整数-12 や 007 のように、符号(省略可)と数字だけで構成される値です。±9,007,199,254,740,991 を超える値は報告されるため、桁数の多い ID には文字列の型とパターンのルールを使ってください。
型:数値3.5、-0.25、1e3 のように、小数点にピリオドを使う単純な 10 進表記です。桁区切りのコンマ、通貨記号、前後の空白は使えません。
型:true / false大文字・小文字を問わず true または false です。1、0、yes、no は報告されます。
型:日付、日時YYYY-MM-DD 形式で書かれた実在する暦日です。そのため 2024-02-30 は報告されます。日時の場合は時刻が加わります(2024-03-05T09:30。秒と Z や +02:00 のオフセットは省略可)。
型:文字列(形式付き)メール アドレス(name@domain.tld という形かどうかの簡単なチェックで、実際に届くかどうかは確認しません)、URI(スキーム付きの絶対 URL)、UUID(バージョン 1~8)から選べます。
必須値が空であってはいけません。このルールがない場合、空の値はほかのすべてのルールを通過します。
一意列の中で同じ値が繰り返されてはいけません。レポートには、その値が最初に現れた行が表示されます。空の値は比較しません。
許可する値大文字・小文字や空白も含めて、一覧のいずれかの値と完全に一致する必要があります。
最小値、最大値整数と数値の列では範囲の上限・下限(その値を含む)を、日付と日時の列では ISO 形式の日付を指定します。
最小文字数、最大文字数Unicode の文字単位で数えるため、é も 日 も 1 文字です。
パターンTable Schema の仕様どおり、値全体に一致する必要がある正規表現です(例:[A-Z]{2}\d{4})。大文字と小文字は区別されます。

ルールは、見出しがルールの名前と完全に一致する列に適用されます。ファイルにない列のルールは無視されます。ルールは Table Schema 形式の JSON ファイルとして保存し、次に書き出したファイルで読み込み直せます。読み込んだスキーマに未対応の型やキーがあっても、無視されます。

レポートの見方

  • 行番号は、見出しの後のデータ レコードから数えます(見出しは 0 行目)。引用符の中に改行がある値も 1 つのレコードなので、行番号はテキスト エディターの行番号と異なることがあります。
  • 各問題には列名と値が示されるため、CSV ビューアー やエディターでその値を検索できます。
  • エラーは構造またはルールに違反していることを示します。警告は、CSV としては正しいものの、インポート時に問題を起こしやすいデータを示します。
  • 一覧に表示されるのは 5,000 件までです。それを超えても問題の種類ごとの合計は数えられ、一覧には途中までであることが示されます。

制限とプライバシー

チェックは 1 レコードずつ読み込んで行うため、対話的に扱える上限の 25 MB を超えるファイルも、バックグラウンドのワーカーでストリーミング方式によりチェックできます。進行状況が表示され、途中でキャンセルすることもできます。ストリーミング方式では現在、見出しよりフィールドが少ないレコードをチェック前に空の値で補うため、フィールド数のエラーとして報告されるのはフィールドが多すぎるレコードだけです。

チェックはブラウザー内で実行されます。CSV がサーバーにアップロードされることはありません。

例

会員登録データを 4 つのルールでチェックした例です。id は必須かつ一意の整数、email はメール形式の必須の文字列、signup_date は日付、plan は basic、pro、team のみ許可します。出力はチェックのレポートで、概要の後に 1 行に 1 件ずつ問題が並びます。存在しない日付、ドメインの末尾がないメール アドレス、大文字・小文字が違う Pro、重複した id、メール アドレスの欠落、そして末尾に空白がある team です。最後の値は警告の対象であり、許可する値でもないため 2 件として報告されます。

CSV
id,email,signup_date,plan
1,ana@example.com,2024-02-30,pro
2,kim@example,2024-03-01,Pro
2,bao@example.com,2024-03-04,basic
4,,2024-03-05,team 
チェックのレポート
{"rows":4,"errors":6,"warnings":1,"truncated":false}
{"code":"type","row":1,"column":"signup_date","value":"2024-02-30","params":{"type":"date"}}
{"code":"format","row":2,"column":"email","value":"kim@example","params":{"format":"email"}}
{"code":"enum","row":2,"column":"plan","value":"Pro","params":{"allowed":"basic, pro, team"}}
{"code":"unique","row":3,"column":"id","value":"2","params":{"first":2}}
{"code":"whitespace","row":4,"column":"plan","value":"team ","params":{}}
{"code":"required","row":4,"column":"email","value":"","params":{}}
{"code":"enum","row":4,"column":"plan","value":"team ","params":{"allowed":"basic, pro, team"}}

よくある質問

空白を含む値が「許可する値」の違反として報告されるのはなぜですか?

ルールは前後の空白を削除せず、書かれたとおりの値で比較するため、team は team と一致しません。CSV のクリーニング でその列の空白を削除するか、書き出し元を修正してください。

チェックによってファイルが変更されることはありますか?

ありません。ファイルを読み込んで、見つかった問題を報告するだけです。問題はエディターか出力元のシステムで修正してください。

毎月書き出すファイルに同じルールを使い回せますか?

はい。ルールを Table Schema 形式の JSON ファイルとして保存し、次回読み込んでください。ルールは列名で各列に対応付けられます。

規格と参考資料