Excelに取り込んだデータの日付について
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
Excelに取り込んだデータの日付について
msg# 1
Noriten
投稿数: 4
初めての投稿です。よろしくお願いします。
Excelの外部データの取り込みを使って
Magicで作成したデータを読み込みましたが
日付が正しく出ていません。(DBはPervasiveです)
2013/10/11が3912/10/10となってしまっています。
どのように対処したらいいでしょうか。
Excelの外部データの取り込みを使って
Magicで作成したデータを読み込みましたが
日付が正しく出ていません。(DBはPervasiveです)
2013/10/11が3912/10/10となってしまっています。
どのように対処したらいいでしょうか。
投票数:0
平均点:0.00
Re: ECXELに取り込んだデータの日付について
msg# 1.1
Tanda
投稿数: 2151
Noritenさん、こんにちは。
年数の差がちょうど、1,899年の差になっていますので、
原因が明らかなようですね。
Magicは、日付データは内部的には西暦1年1月1日からの
経過日数(数値データ)で記憶されています。
これに対して、Excel側では日付データは内部的に西暦
1900年1月1日を基点として保存されます。
したがいまして、Magicから数値データとして吐き出した
値を直接Excel側に読み込みますと、その差である1899年
分の値が加算された結果として取り込まれてしまいます。
これを回避するには、Magic側かもしくはExcel側のいずれか
で、その差を吸収する手立てを加えてやる必要があります。
取り込みの手段は何を使っておられますか?ODBCですか?
年数の差がちょうど、1,899年の差になっていますので、
原因が明らかなようですね。
Magicは、日付データは内部的には西暦1年1月1日からの
経過日数(数値データ)で記憶されています。
これに対して、Excel側では日付データは内部的に西暦
1900年1月1日を基点として保存されます。
したがいまして、Magicから数値データとして吐き出した
値を直接Excel側に読み込みますと、その差である1899年
分の値が加算された結果として取り込まれてしまいます。
これを回避するには、Magic側かもしくはExcel側のいずれか
で、その差を吸収する手立てを加えてやる必要があります。
取り込みの手段は何を使っておられますか?ODBCですか?
投票数:0
平均点:0.00
Re: ECXELに取り込んだデータの日付について
msg# 1.1.1
Noriten
投稿数: 4
Tandaさま 返信ありがとうございます。
ODBC接続です。
ODBC接続です。
投票数:0
平均点:0.00
Re: Re: ECXELに取り込んだデータの日付について
msg# 1.1.1.1
Tanda
投稿数: 2151
ひとつの方法として、Excel側で式を立ててやる方法があります。
これですと、Magic側を何も触らなくてできますので簡単です。
やり方は次の通りです。
「3912/10/10」から「2013/10/11」を単純に引くと、「693594」
という数値が返ってきます。したがって、日付日数の差は
「693594日」であることが分かります。
そして、もしExcelのセルの「A1」に「3912/10/10」という値が
入っているとしたら、別のセルに代入式として、「=A1-693594」
という式を立ててやります。これでOKです。
ODBCの環境が今手近にありませんので、ひょっとしたらODBC
側の設定で変換することもできるかもしれませんが、とりあえず
これでいけると思います。
P.S. SQL Serverを使えば、ExcelもSQL ServerもMicrosoftの
製品ですから、何もしなくても直接データが取り込めて便利ですよ。
機会があれば、SQL Serverもぜひ導入して試してみてください。
これですと、Magic側を何も触らなくてできますので簡単です。
やり方は次の通りです。
「3912/10/10」から「2013/10/11」を単純に引くと、「693594」
という数値が返ってきます。したがって、日付日数の差は
「693594日」であることが分かります。
そして、もしExcelのセルの「A1」に「3912/10/10」という値が
入っているとしたら、別のセルに代入式として、「=A1-693594」
という式を立ててやります。これでOKです。
ODBCの環境が今手近にありませんので、ひょっとしたらODBC
側の設定で変換することもできるかもしれませんが、とりあえず
これでいけると思います。
P.S. SQL Serverを使えば、ExcelもSQL ServerもMicrosoftの
製品ですから、何もしなくても直接データが取り込めて便利ですよ。
機会があれば、SQL Serverもぜひ導入して試してみてください。
投票数:0
平均点:0.00
Re: Re: ECXELに取り込んだデータの日付について
msg# 1.1.1.1.1
Noriten
投稿数: 4
Tandaさま
ありがとうございます。
早速、Excelに式を入れて作ってみます。
ちなみに、Magic側ではどのような方法があるのでしょうか。
ありがとうございます。
早速、Excelに式を入れて作ってみます。
ちなみに、Magic側ではどのような方法があるのでしょうか。
投票数:0
平均点:0.00
Re: Re: Re: ECXELに取り込んだデータの日付について
msg# 1.1.1.1.1.1
Tanda
投稿数: 2151
ODBCはやはり直接、データソースの値を見に行きますので、
途中で変換プログラムを組み込ませるのはちょっと厄介ですね。
ひとつの方法としては、Magic側に新しい「数値型」のカラムを
設けて、そこに「日付項目 - 693594」という代入式を入れて、
Excel側ではその値を取り込むっていう方法になるでしょうか。
ちなみに、Magic側で日付項目のデフォルト特性を西暦1年1月1日
以外に変更しても、内部のシリアル値(経過日数値)は変りませ
んでした。
プログラムするなら、nkmtさんのアドバイスでもいいですよ。
途中で変換プログラムを組み込ませるのはちょっと厄介ですね。
ひとつの方法としては、Magic側に新しい「数値型」のカラムを
設けて、そこに「日付項目 - 693594」という代入式を入れて、
Excel側ではその値を取り込むっていう方法になるでしょうか。
ちなみに、Magic側で日付項目のデフォルト特性を西暦1年1月1日
以外に変更しても、内部のシリアル値(経過日数値)は変りませ
んでした。
プログラムするなら、nkmtさんのアドバイスでもいいですよ。
投票数:0
平均点:0.00
Re: Re: Re: Re: ECXELに取り込んだデータの日付について
msg# 1.1.1.1.1.1.1
Tanda
投稿数: 2151
訂正
「数値型」のカラムでなくても、「日付型」のカラムでもいいです。
式は成り立ちますから。
「数値型」のカラムでなくても、「日付型」のカラムでもいいです。
式は成り立ちますから。
投票数:0
平均点:0.00
Re: Excelに取り込んだデータの日付について
msg# 1.2
nkmt
投稿数: 1668
Magicに取り込むと日付が 3912/10/10 になっているんですよね?
(状況はよくわかりませんが・・・)
Tandaさんの言葉を拝借すれば、
Magic側で
項目更新 日付項目 代入式(日付項目−693594)
とするのもいいと思います。
(状況はよくわかりませんが・・・)
Tandaさんの言葉を拝借すれば、
Magic側で
項目更新 日付項目 代入式(日付項目−693594)
とするのもいいと思います。
投票数:0
平均点:0.00
Re: Re: Excelに取り込んだデータの日付について
msg# 1.2.1
Noriten
投稿数: 4
nkmtさま 返信ありがとうございます。
説明が下手ですみません。
Excelに取り込むと日付が3912/10/10になってしまい、困っておりました。
項目更新で代入式、試してみたいと思います。
ありがとうございました。
説明が下手ですみません。
Excelに取り込むと日付が3912/10/10になってしまい、困っておりました。
項目更新で代入式、試してみたいと思います。
ありがとうございました。
投票数:0
平均点:0.00