• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで日付の文字列のシリアル値化)

エクセルで日付の文字列をシリアル値化する方法とVALUEエラー対策

このQ&Aのポイント
  • エクセルで日付の文字列をシリアル値化する方法とVALUEエラー対策について解説します。
  • エクセルの日付のシリアル値とは、日付を数値で表したものです。文字列からシリアル値に変換する方法として、LEFT関数とMID関数を使用します。
  • しかし、一部の文字列ではVALUEエラーが発生することがあります。これは日付の文字列が正しい形式でないためです。VALUEエラーを回避するためには、日付の入力形式に注意する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

「2020年7月1日」が日付として認識されていないものと思われます。 その PCの日時の環境設定が「日本」以外になっているんでしょう。 日本にローカライズされていない PCで「1/7/2020」と入力しても シリアル値に変換されないのと同じ話です。 > VALUEエラーが出ないようにするのはどうすれば (1)エラーが起きる PCの地域の日時設定を変更する。 (2)「日本語の日付」からシリアル値に変換しない。 のどちらかだろうと思います。 =DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND("~",A1)-1),"年","/"),"月","/"),"日","")) =DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(REPLACE(A1,1,FIND("~",A1),""),"年","/"),"月","/"),"日",""))

emaxemax
質問者

お礼

Chiquilinさん、ありがとうございます! >PCの日時の環境設定が「日本」以外になっているんでしょう。 まさにこれでした!! ほんとうにありがとうございます。

その他の回答 (2)

回答No.2

2020年8月 1日~2021年 9月31日 ↑のように半角スペースが入っているとかではないですよね…?

emaxemax
質問者

お礼

ありがとうございます。わたしも最初はそう思い、ファイルを送ってもらって中を調べたのです。でもデータは正しいものでした。計算式が壊れたのかと式を見ても壊れてません。そこでエンターキーを押したらそれまでVALUEエラーだったセルが日付に変わったのです!不思議です。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

=IF(E5="","",DATEVALUE(MID(E5,FIND("~",E5)+1,11))) とかにしてみてはいかがでしょう。

emaxemax
質問者

お礼

これでためしてもらいましたがやはりVALUEエラーでした。 ありがとうございます。

関連するQ&A