エクセルで CSV ファイルで保存して、他のソフトで取り込むときのエラーの話です。
具体的にはタイムカードソフトから給料計算ソフトへの移動の話なのですがかなり苦労しました。
「csv 時間 変換」 などで検索してもみつからず、、
今回はその顛末を備忘録としてまとめています。
エクセルで24時間以上は「[h]:mm」としないといけない、、、
エラーはエクセルで保存したデータをそのまま給与計算ソフトに取り込もうとすると出てしまい、エラーが出なかったデータを見ると全て24時間未満だったので、エクセルの24時間の時間表示、書式設定がエラーの原因だと、まず考えました。
24時間表示についてはこちらのサイトを参考にしました。
https://www.jpita.or.jp/hpv3/ziten/mokutekibetu/ex_56.html
これらのサイトによると「h:mm」で24時間以上は無理なので 「[h]:mm」としないといけないという事でした。
エクセルのセル設定ではこのような感じですね 。
セルの書式設定を直せば、24時間以上の表記も問題なくなり、問題はクリアできると考えていました。 しかし、全くエラーは治らりません。
同じ CSV データをエクセルで開いて、保存するだけでデータ形式が変わる
そこで、 給与計算ソフトで CSV データを保存した際のデータとエクセルで保存した CSV データをエクセルで開き比較しました。
これでも問題点が見つからなかったので、もしかして、と思って メモ帳で開いてみて原因がわかりました。
同じ CSV データをエクセルで開いて保存するだけでデータ形式が変わる、ということです。
メモ帳で開いて保存してもデータ形式は全く変わらないことに気づきました。正確に言えばエクセルでも下のダイヤログを家で「保存しない」と形式は変わらないようです。
結局のところ、CSVで保存する際、上記のこれをするから時間設定がずれるようで、、、、
つまり、「25:00」から「25:00:00」に変更されるからエラーが出るようです。
なので、エクセルで通常作業し内容を確定する—>保存—->csvでエクスポート—>「CSV~この形式で保存しますか?」—>全て「いいえ」で形式を保存しなければ、 「25:00」 から変わらないようです。
これでうまくエラーができずに処理できました。
(参考)エクセルでの時間表示と注意点
エクセルで時間を表示するには、セルに時間を入力してから、そのセルの書式を設定する必要があります。以下に基本的な手順を説明します。
エクセルでの時間の入力
- 時間の入力: セルに時間を入力する際は、
時:分
や時:分:秒
の形式を使用します。例えば、午前9時30分は9:30
と入力し、午後3時45分30秒は15:45:30
と24時間制で入力します。 - 日付と時間の入力: 日付と時間を同時に入力する場合は、日付と時間の間にスペースを入れます。例:
2024/3/8 15:45
。
セルの書式設定
時間の書式を設定するには、以下の手順に従います:
- セルの選択: 時間を表示したいセルまたはセル範囲を選択します。
- [書式設定]: [ホーム] タブの [数値] グループにある [書式設定] ドロップダウンリストをクリックし、「ユーザー定義」を選択します。
- 時間形式の選択または入力: 様々な時間形式の中から選ぶか、カスタム形式を作成することができます。例えば
h:mm AM/PM
は12時間制で午前または午後を示し、hh:mm:ss
は24時間制で秒まで表示します。
注意点
- 24時間制と12時間制: エクセルでは時間がデフォルトで24時間制で扱われます。12時間制を使用する場合は、AM/PMを含める必要があります。
- 0時を超える時間: 24時間を超える時間(例:36時間)を扱う場合は、書式設定で
[h]:mm:ss
のように角括弧を使用してください。これにより、24時間を超える時間の計算が可能になります。 - 日付と時間: エクセルは日付と時間を連続した数値として扱います。日付は1900年1月1日を基準とした連続した日数で、時間は1日のうちのどの時点かを小数で表します。このため、時間だけでなく日付も意識する必要があります。
- 時間の計算: 時間の計算を行う際は、結果が想定外の形式にならないよう、計算用のセルも適切に書式設定する必要があります。
エクセルで時間を扱う際は、これらの基本的な手順と注意点を押さえておくことで、より効果的にデータを管理することができます。
CSVの文字コードの確認と変更方法
それでもエラーが出る場合は文字コードによるエラーかもしれません。
その場合はメモ帳でCSVを開き右下に出てくるコード確認しましょう。
(下記の場合は「UTF-8」です。)
このファイルを保存する時下の様にエンコードを変更すれば、文字コードの変更が可能です。
まとめ
今回も痛感したの次の2点です。
①各種ソフトと受け渡しをする際は、エクセル側で何とかする
②各データの形式等の確認は、メモ帳などの生データを直接確認する方法で行う
この2つが今回がポイントだった気がします。