みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
和暦 平成26年7月10日 のような和暦を
西暦の2014/7/10 に変換するにはどのようにすれば可能でしょうか?
使用ソフトはFM12です。
普通は逆なんですが。
FMに、2014/9/9 と入力すれば、平成26年9月9日 と表示する機能はあります。
もしテキストで、平成26年7月10日 と入っているのでしたら、例えば、
Substitute ( テキスト ;[ "平成" ; "H" ];[ "昭和" ; "S" ];[ "大正" ; "T" ];[ "明治" ; "M" ];[ "年" ; "/" ];[ "月" ; "/" ];[ "日" ; "" ])
という計算フィールドを作れば良いでしょう
Offline
shinさん、ありがとうございます。
自分自身の問題事態も把握できていないことが判りました。内容説明が不備で申し訳ありません。
エクセルの日付をインポートしたデータを変換するものでした。
形式が 平成26年1月21日 とあるものがインポートするとファイルメーカー上では 41660、
平成26年1月24日ですと、41663に変わっています。
この番号を変えることはできるのですか?
結果の「41660」は日付番号で、FM側のフィールドタイプが「数値」タイプになっているから、と思います。
それにしても、エクセル日付「2014/01/21(=平成26年1月21日)」がFM数字「41660(=0115/01/23)」
になったと言うことは、エクセルは日付を1900年以降の経過日数で持っていると言うことか?
だとすると、FMの日付番号は0001年以降の経過日数だから、差「693594 (=1899/12/30)」を補足しないと、
正しい日付「735254 (=2014/01/21)」が得られませんネ。補正式は、
GetAsDate ( インポート日付番号 + 693594 )
Offline
Hiro様、詳細なる御教示ありがとうございます。
教えて頂いた、計算方法でやっていきます。
下記の私のまわりくどい計算式でなぜか2を引くと正解な日付が出たのですが、
このマイナス2が、1899/12/30と1900/1/1 の差なのですね?
Let ( a = "1900/1/1" ;
Date(Month(a);Day(a);Year(a)) + インポート日付番号 - 2
)
>エクセルは日付を1900年以降の経過日数で持っている
1904年から計算するオプションがある。
自分のエクセル2010場合は、その日付の行の表示形式が標準やユーザー定義になっていたのを
日付に変更してインポートしたらうまくいきましたよ。
参考になれば
Offline
>エクセルは日付を1900年以降の経過日数で持っている
1904年から計算するオプションがある。
元々は、1900年起点がオプションだった。
1904起点にした意図を無視して1900起点オプションを作り、バグを埋めん込んでしまい、30年以上放置されている、というか、直すに直せない状況。1899/12/30 を足す、って変でしょ。1900/1,/2 は正しく計算できないので注意を。(現実には、今はほぼ無視できると思います、昔1900生まれの方で問題が出た事があった)
最初の3ヶ月ほどの連続日付をFMへインポートしてみるとわかると思う。
Last edited by Shin (2014-09-26 11:45:06)
Offline
Pages: 1
[ Generated in 0.004 seconds, 10 queries executed - Memory usage: 511.83 KiB (Peak: 516.37 KiB) ]