- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで日付の文字列のシリアル値化)
エクセルで日付の文字列をシリアル値化する方法とVALUEエラー対策
このQ&Aのポイント
- エクセルで日付の文字列をシリアル値化する方法とVALUEエラー対策について解説します。
- エクセルの日付のシリアル値とは、日付を数値で表したものです。文字列からシリアル値に変換する方法として、LEFT関数とMID関数を使用します。
- しかし、一部の文字列ではVALUEエラーが発生することがあります。これは日付の文字列が正しい形式でないためです。VALUEエラーを回避するためには、日付の入力形式に注意する必要があります。
- みんなの回答 (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),""),"年","/"),"月","/"),"日",""))
その他の回答 (2)
- iyonohanamuko
- ベストアンサー率54% (6740/12373)
回答No.2
2020年8月 1日~2021年 9月31日 ↑のように半角スペースが入っているとかではないですよね…?
質問者
お礼
ありがとうございます。わたしも最初はそう思い、ファイルを送ってもらって中を調べたのです。でもデータは正しいものでした。計算式が壊れたのかと式を見ても壊れてません。そこでエンターキーを押したらそれまでVALUEエラーだったセルが日付に変わったのです!不思議です。
- kkkkkm
- ベストアンサー率66% (1719/2589)
回答No.1
=IF(E5="","",DATEVALUE(MID(E5,FIND("~",E5)+1,11))) とかにしてみてはいかがでしょう。
質問者
お礼
これでためしてもらいましたがやはりVALUEエラーでした。 ありがとうございます。
お礼
Chiquilinさん、ありがとうございます! >PCの日時の環境設定が「日本」以外になっているんでしょう。 まさにこれでした!! ほんとうにありがとうございます。