Excelとスプレッドシート間の日付・カスタム書式不一致による#VALUE!エラーの解決策
最終更新日: 2026-08-27
30秒でわかる原因と解決策
原因: ExcelとGoogleスプレッドシート間でファイルをインポート・共有した際、日付データや独自のカスタム書式(文字列と数値の混在など)の内部処理・解釈が異なるため、計算時に
#VALUE!エラーが発生します。 解決策:DATEVALUE関数やTEXT関数を用いて、データ型を明示的にテキストまたはシリアル値(数値)に変換し、両環境で共通して解釈できる形式に統一します。
修正コード(Before / After)
❌ エラーが発生するコード
// Excelからインポートした日付に対してそのまま計算を行おうとした場合
=A1 + 5
⭕ 修正後の推奨コード
// 日付をシリアル値に変換してから計算を行う
=DATEVALUE(A1) + 5
よくある発生パターンと解説
発生するシチュエーション
この #VALUE! エラーは、主に以下のシチュエーションで発生します。
- Excel形式(.xlsx)のファイルをGoogleスプレッドシートにアップロードして開いたとき
- OSやロケール設定(日本、米国など)が異なる環境間でデータをやり取りしたとき
- セルに「日付」として入力されているデータが、実は「文字列」として判定されてしまっているとき
原因の深掘り
ExcelとGoogleスプレッドシートは、どちらも表計算ソフトとして高い互換性を持っていますが、日付データのシリアル値の起点や、カスタム表示形式のパース処理には微細な差異があります。特に、文字列として入力された日付データや、特殊なカスタム書式が適用されたセルを参照して四則演算や日付の加算を行うと、スプレッドシート側で正しく数値として認識されず、 #VALUE!(値エラー)が返されます。
解決アプローチ
DATEVALUE関数の利用: 文字列として認識されている日付を、スプレッドシートが正しく日付(シリアル値)として認識できる形式に変換します。VALUE関数の利用: カスタム書式によって数値が文字列扱いになっている場合は、純粋な数値に変換します。- 書式の再適用: メニューの「表示形式」から「日付」や「数値」を明示的に再設定し直すことも有効です。
よくある質問 (FAQ)
Q1: 関数を使わずに、セルの操作だけで直す方法はありますか?
A: はい、あります。該当するセル範囲を選択し、上部メニューの 「表示形式」>「数字」>「日付」(または「標準」や「数値」)を一度別の形式に変更し、再度正しい形式に設定し直すことで、内部のデータ型がリセットされエラーが解消されることがあります。
Q2: 複数のシートやチーム間でファイルを頻繁に往復させる場合の予防策はありますか?
A: 根本的な予防策として、日付データを扱う際は生データのままやり取りするのではなく、あらかじめ TEXT(A1, "yyyy/mm/dd") のように文字列として出力・共有するか、CSV形式などプレーンな形式でデータを渡すことで、ソフト間の解釈のズレを防ぐことができます。