型を手動で設定するシステムにCSVを取り込む例

取引先から受け取った設備センサーのCSVを、社内のトレンドグラフ表示システムに取り込む場面を考えます。このシステムはCSVの値から型を判定しないため、取り込み設定画面で列ごとに次の項目を入力する必要があります。

設定項目入力する内容CSVで調べること
データ種別日時・数値・文字列のどれか各列の値の種類と、型に合わない値の有無
日時の書式yyyy-MM-dd HH:mm:ssなど日時列の形式と、形式の混在
小数桁数小数点以下を何桁まで扱うか数値列の小数部の最大桁数
グラフの表示範囲縦軸の最小値・最大値、横軸の期間数値列の最小値・最大値、日時列の最初と最後
系列グラフの線を分ける列(設備IDなど)その列に入っている値の種類

設定項目は説明用の架空のシステムの例です。実際の項目名や設定方法は、利用するシステムの仕様書を確認してください。

今回使用するCSVは、2台の設備について温度・気圧・湿度・稼働状態を30分ごとに3日間記録した、架空のデータ288件です。

measured_at,device_id,temperature,pressure,humidity,status,note
2026-09-01 00:00:00,001,21.1,101.9,67,1,
2026-09-01 00:00:00,002,17.7,100.9,65,1,
2026-09-01 00:30:00,001,20.5,102.0,67,1,
…
2026-09-02 06:00:00,001,20.5,ERROR,66,1,センサー通信エラー
…

同じファイルで手順を試せるように、サンプルCSV(sensor_trend_sample.csv)を用意しています。値はすべて架空です。

CSVの型と範囲を目視で調べにくい理由

CSVはすべての値を文字として保存するため、ファイル自体には「この列は数値」「この列は日時」という情報がありません。型は、実際に入っている値から判断する必要があります。

ExcelでCSVを開いて先頭の数十行を見るだけでは、次のような問題を見落としやすくなります。

  • 数百行目にだけあるERRORなどの文字
  • 途中から2026/09/01のように変わる日付の区切り文字
  • 001のような先頭0(Excelが数値として表示すると1に見えます)
  • 全体の最小値・最大値と、小数点以下の最大桁数
  • 空欄の件数と、その列に入っている値の種類

型を誤って設定すると、取り込みエラーになるだけでなく、IDの先頭0が消える、グラフが途切れる、軸の範囲から値がはみ出すといった問題につながります。全行を目視する代わりに、CSV 列型判定で列ごとに集計します。

手順1:CSV 列型判定でファイルを選択する

CSV 列型判定を開き、[CSVファイルを選択]を押すか、ファイルを枠内へドロップします。1行目が列名の場合は[1行目をヘッダーとして扱う]をオンのままにします。

CSV 列型判定のファイル選択画面。CSVファイルを選択ボタンと、1行目をヘッダーとして扱うチェックボックスがある
CSVはブラウザ内で解析され、サーバーへ送信されません。

対応しているのはカンマ区切りのCSVで、文字コードはUTF-8とShift_JIS / Windows-31Jを自動で判定します。タブ区切りなどの場合は、先にCSV 区切り文字変換でカンマ区切りにします。

手順2:全列の判定結果を一覧で確認する

ファイルを選択すると、列数とデータ件数の下に、列ごとの推定型と注意点が一覧で表示されます。今回のCSVでは7列のうち4列が「確認が必要」と判定されました。

判定結果の一覧。7列中4列が確認が必要で、補足欄に複数の日付形式あり、先頭ゼロあり、型に合わない値あり、0/1フラグ候補と表示されている
「確認が必要」の件数と「補足」欄から、先に見るべき列が分かります。
一覧の項目意味
推定型空欄以外の値から推定した型です。文字列、整数、小数、日付、日時、真偽値候補、混在、空列のいずれかになります。
判定確度推定型に合う値の割合などから高・中・低で表示します。型に合わない値がある列や、値が3件以下の列は低めになります。
空欄何も入っていないセルの件数です。NULLなどの文字は空欄に含めません。
異常値推定型に合わない値の件数です。
補足先頭ゼロ、0/1フラグ候補、複数の日付形式など、型を決める前に確認したい点です。

今回の一覧からは、次のことが分かります。

  • measured_at:日時。ただし日付の形式が2種類混ざっている
  • device_id:数字だけだが、先頭0があるため文字列と判定
  • pressure:小数。ただし型に合わない値が2件、空欄が1件ある
  • status:整数。0と1だけなので、フラグの可能性がある
  • note:文字列。288件中285件が空欄

手順3:「確認が必要」の列だけに絞り込む

列が多いCSVでは、[表示]で[確認が必要]を選ぶと、型の混在、型に合わない値、先頭ゼロなどの補足がある列だけを表示できます。数値列だけ、日付・日時列だけに絞り込むこともできます。

表示で確認が必要を選択し、measured_at、device_id、pressure、statusの4列だけが表示されている
問題のない列を除いて、判断が必要な列から確認できます。

絞り込みは表示を切り替えるだけで、判定結果は変わりません。列定義を作るときは、最後に[すべて]へ戻して全列を確認します。

手順4:[詳細を見る]で範囲・桁数・形式を確認する

各列の[詳細を見る]を押すと、件数の内訳と値の範囲が表示されます。グラフの設定に必要な値は、ここで確認します。

日時列:期間と形式

measured_atの詳細。最小値2026-09-01 00:00:00、最大値2026-09-03 23:30:00、形式はyyyy-MM-dd HH:mm:ssが286件、yyyy/MM/dd HH:mm:ssが2件
日時列では、最も古い日時と新しい日時、形式ごとの件数が分かります。

measured_atは2026-09-01 00:00:00から2026-09-03 23:30:00までのデータです。形式はyyyy-MM-dd HH:mm:ssが286件、yyyy/MM/dd HH:mm:ssが2件でした。システムに設定できる書式が1つだけなら、取り込む前に形式をそろえる必要があります。

数値列:最小値・最大値と桁数

temperatureの詳細。推定型は小数、最小値16.4、最大値29.2、最大桁数は整数部2桁・小数部1桁
数値列では、最小値・最大値に加えて整数部と小数部の最大桁数を確認できます。

temperatureは16.4から29.2までの小数で、整数部は最大2桁、小数部は最大1桁です。この結果から、データ種別は数値、小数桁数は1桁と設定できます。整数列のhumidityは39から72、最大2桁でした。

最小値・最大値と桁数は、推定型に合う値だけから計算します。混在と判定された列では表示されないため、先に混在の原因を確認してください。

手順5:型に合わない値の行を特定する

異常値がある列の詳細では、「型の内訳」と「確認したい値」に、どの値が推定型に合わなかったかが表示されます。

pressureの詳細。型に合わない値2、型の内訳は小数285件・文字列2件、確認したい値はデータ行121と122のERROR
pressureでは、データ行121と122にERRORが入っていました。

表示される行番号は、ヘッダーを除いたデータ行の番号です。1行目をヘッダーとして扱っている場合、データ行121はCSVファイルの122行目にあたります。該当行のnote列には「センサー通信エラー」と記録されていました。

確認したい値は列ごとに最大10件まで表示されます。件数が多い場合は、列定義表で決めた型をCSV 列制約チェックに設定すると、違反した行を一覧で確認できます。

手順6:IDやフラグの列は値の一覧を確認する

空欄以外の値が20種類以下の列では、詳細に「値の一覧」と件数が表示されます。系列に使う列やフラグの列は、ここで入っている値を確認します。

statusの詳細。推定型は整数、最小値0、最大値1、値の一覧は1が284件、0が4件
statusには1が284件、0が4件だけ入っています。

statusは0と1だけの整数で、補足には「0/1フラグ候補」と表示されています。ただし、0と1が「停止・稼働」を表すのか、単なる数量なのかはCSVだけでは分かりません。データの提供元に意味を確認します。

device_idの値の一覧は001(144件)と002(144件)でした。2台の設備で件数がそろっているため、系列として使えそうなことも分かります。

手順7:判定結果をCSVでダウンロードする

一覧の下にある[判定結果をCSVでダウンロード]を押すと、全列の判定結果を1列1行のCSVで保存できます。UTF-8 BOM付きで保存されるため、Excelで開いても日本語の列名が文字化けしにくくなっています。

値の一覧を結果CSVに含めるチェックボックスと、判定結果をCSVでダウンロードボタン
値の一覧も保存したい場合は、チェックボックスをオンにしてからダウンロードします。

今回のCSVをダウンロードすると、主な項目は次のようになりました(実際のファイルには、データ件数、有効値、ユニーク値数、最小文字数なども含まれます)。

列名推定型空欄型に合わない値最小値最大値整数部の最大桁数小数部の最大桁数補足
measured_at日時002026-09-01 00:00:002026-09-03 23:30:00複数の日付形式あり
device_id文字列00先頭ゼロあり(文字列推奨)
temperature小数0016.429.221
pressure小数12100.8102.231型に合わない値あり
humidity整数3039722
status整数000110/1フラグ候補
note文字列2850

判定結果のCSVには、元のCSVの値は最小値・最大値にしか含まれません。値の一覧はチェックを入れた場合だけ追加されます。取引先のデータを社内で共有する場合は、含めてよい情報か確認してから保存してください。

判定結果から列定義表を作る

ダウンロードしたCSVをExcelで開き、「設定する型」「表示範囲」「対応」の列を追加すると、システムに入力する内容をまとめた列定義表になります。推定型をそのまま写すのではなく、列の用途と取り込み先の仕様に合わせて決めます。

列名設定する型範囲・形式判断と対応
measured_at日時(横軸)yyyy-MM-dd HH:mm:ss
2026-09-01 00:00:00~2026-09-03 23:30:00
yyyy/MM/dd形式の2件を統一してから取り込む
device_id文字列(系列)3文字、001・002数値にすると先頭0が消えて1・2になるため文字列にする
temperature数値・小数1桁実データ16.4~29.2表示範囲は単位(℃)と今後の値を考えて決める
pressure数値・小数1桁実データ100.8~102.2ERROR2件と空欄1件の扱いを決めてから取り込む
humidity数値・整数実データ39~72空欄3件。単位が%なら0~100で表示する方法もある
status数値(0/1)0・10と1の意味を提供元に確認し、グラフに表示するか決める
note文字列最大9文字グラフに使わないなら取り込み対象から外す

判断に迷うのは、数字だけで構成される列です。計算やグラフの値として使う列は数値、IDやコードのように識別に使う列は文字列にします。先頭0がある値、桁数が決まっているコード、郵便番号なども文字列にしておくと値が変わりません。

グラフの表示範囲は最小値・最大値だけで決めない

判定結果の最小値・最大値は、そのCSVに入っているデータの範囲です。グラフの縦軸にそのまま設定すると、線が上端と下端に張り付いて変化が見にくくなるほか、次回以降のデータが範囲を超える可能性があります。

  • 余白を取る:temperatureの実データが16.4~29.2なら、10~35のように前後に余裕を持たせる
  • 単位で決まる範囲を使う:湿度(%)なら0~100のように、取り得る範囲で固定する
  • 仕様上の上限・下限を確認する:センサーの測定範囲や、業務上の基準値があればそれに合わせる
  • 期間は今後の取り込みも考える:横軸を固定する場合は、毎回のデータ期間が変わることを考慮する

範囲外の値をどう扱うか(表示しない、端に寄せて表示する、取り込みエラーにするなど)はシステムによって異なります。設定前に仕様を確認してください。

判定結果をそのまま使えないケース

CSV 列型判定は、入っている値の形から型を推定します。次のような場合は、結果を見たうえで人が判断する必要があります。

ケース判定の動作確認すること
1,200、12.5%、全角数字数値ではなく文字列として数えます取り込み先が受け付ける数値の書き方
NULL、N/A、-空欄ではなく値(文字列)として数えます欠損値の表記と、取り込み先での扱い
20260905のような8桁日付候補になりますが、判定確度は低になります日付なのか、コードや数量なのか
09/04/2026のような月日順月と日の順序が曖昧なため日付と判定しません出力元の日付形式
値が3件以下の列判定確度は低になります今回のファイルだけでは型を判断できないことがある
型が混在している列最小値・最大値と桁数を表示しません型に合わない値の原因
値が21種類以上の列値の一覧は表示せず、値の例だけを表示します許容値が決まっている列は列制約チェックで確認
小数の最小値・最大値100.50は100.5のように末尾の0を省いて表示します(桁数は入力どおりに数えます)表示桁数は桁数の結果で判断する
時刻の間隔や抜け30分ごとにそろっているか、欠けている時刻があるかは判定しませんトレンドグラフで線が途切れないか

また、判定はそのCSVに入っている値だけを対象にします。今回は小数1桁でも、別の日のデータで2桁の値が来る可能性はあります。継続して取り込むデータは、提供元の仕様も合わせて確認してください。

問題が見つかった列の直し方

判定で見つかった問題は、元のCSVを残したまま、別のファイルとして修正します。

問題使うツール今回の対応例
日付・日時の形式が混在しているCSV 日付形式チェック・統一measured_atをyyyy-MM-dd HH:mm:ssにそろえる
数値列にERRORなどの文字があるCSV 欠損値・NULL表記統一pressureのERRORを欠損値として空欄にする
グラフに使わない列があるCSV 列抽出noteを除いたCSVを作る
決めた型・範囲・桁数を満たすか確認したいCSV 列制約チェック期待するデータ型、整数部・小数部の最大桁数、数値範囲を設定して検証する

ERRORを0に置き換えるのは避けてください。トレンドグラフでは、気圧が0まで下がったように表示されてしまいます。欠損として空欄にするか、その行を除外するかは、取り込み先が空欄をどう扱うかを確認してから決めます。

修正後のCSVを、もう一度CSV 列型判定で確認します。今回の例では、measured_atの補足から「複数の日付形式あり」が消え、pressureの型に合わない値が0件になれば、列定義表のとおりに設定できる状態です。

まとめ

型を自動判定しないシステムにCSVを取り込むときは、全行を目視するのではなく、CSV 列型判定で列ごとの推定型、空欄、型に合わない値、最小値・最大値、桁数、値の一覧を確認します。判定結果をCSVでダウンロードすれば、列定義表のたたき台として使えます。

ただし、判定結果はそのファイルの値から推定したものです。IDやコードは文字列にする、フラグの意味は提供元に確認する、グラフの表示範囲は余白と今後のデータを考えて決める、といった判断は人が行います。問題のある値を修正したら、もう一度判定して結果が変わったことを確認してから取り込んでください。