DATEVALUE関数を使って、西暦年を和暦年に変換する方法をご紹介しました。
このネタに関して、言語設定によってはエラーになってしまうというご指摘をいただきました。ありがとうございます。
当然と言えば当然のことです。
年月日の表記スタイルは、国・言語・文化圏によって違うわけですから。
例えば、
「06/05/04」という表記を見た日本人の場合、
「2006年5月4日」と認識する方がほとんどです。
しかし同じ
「06/05/04」という表記をアメリカ人が見る場合、
「2004年6月5日」と認識することが少なくないはずです。
国・言語・文化圏が違えば年月日の表記は異なります。
Excelでも言語設定によって年月日の表示スタイルは異なります。
ですから、前回ご紹介した「=DATEVALUE(A2&"年1月1日")」という計算式は、日本語でない言語設定ではエラーになってしまうことが多いはずです。
「2006年1月1日」というのは、日本では一般的ですが世界的に共通していない、あくまでも日本式の年月日表示形式なわけですから。
DATEVALUE関数は「文字列」の形式で表された日付を、シリアル値にする関数ですので、言語設定によって理解不能な文字列が引数で与えられた場合、エラーが発生してしまいます。
英語(米国)環境のWindowsでDATEVALUE関数を使うのならば、引数を英語(米国)式にする必要があります。
※A2セルに「2006」と入力されているときにシリアル値を取得する場合 「=DATEVALUE("January 1 , "&A2)」
「=DATEVALUE("01-Jan-"&A2)」
「=DATEVALUE("01/01/"&A2)」
このような指定をすれば、英語(米国)環境下でDATEVALUE関数を使ってシリアル値が取得できるはずです。
上記の例はそれぞれ
「January 1 , 2006」
「01-Jan-2006」
「01/01/2006」
という形式で年月日を指定していることになります。
▼サンプルファイル(002322.xls 16KByte)ダウンロード
サンプルファイルではDATEVALUE関数に様々なスタイルの引数を渡すサンプルを作成してあります。
A列の値を「2007」等に変更すると、B列でエラーが発生するもの・発生しないものが見られると思います。
Windowsの言語設定を変更してから再度A列の値を変更すると、先とは違うB列のいずれかのセルがエラーになるはずです。
言語設定が変更されることによって、日付形式と認識できなくなってしまったスタイルで引数が指定されているDATEVALUE関数で、エラーが発生します。
DATEVALUE関数を利用する場合、言語設定によってこのようなことが発生するということをご承知置きください。
なお言語設定は、Windows XPの場合[地域と言語のオプション]ダイアログ−[地域オプション]タブで、変更します。
[地域と言語のオプション]ダイアログは、コントロールパネルの地域と言語のオプションからも表示できますが、[ファイル名を指定して実行]ダイアログに「intl.cpl」と入力して[OK]ボタンをクリックしても表示できます。
- Newer:セクション区切り削除時に書式はどっちが残る?
- Older:セクション区切りの一括削除
Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 言語設定によりDATEVALUE関数がエラーに