Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
mokitsu61
Creator
Creator

Excelからのデータ取り込みの日付の扱い

Excelファイルからの日付データ取り込みについて。

・環境

Microsoft Office 2016

QV Desktop 12

ExcelからLoadスクリプトでデータ取り込みする際、Excel上の「日付 時刻(YYYY/MM/DD hh:mm)」が入っている項目の

書式設定が「日付」になっていないとQVで日付として扱えません。

→YYYY/MM/DDのみ(hh:mmが無い)だと特に問題無く動くのですが・・・

・例

列名:日付

値:2018/10/01 15:19

書式設定:標準

LOAD 日付                       // LOAD Date#(日付)も試したがダメ

FROM Excelファイル;

「日付」はQVで日時として認識されず、またLOAD時にDate#(日付)しても同様でした。

その為、日付関連の関数を使えず困っています。

→Month()で月を取得、などができない

Excel側で該当セルの書式設定を「日付」にしてあげればQV側では特に何もせずに値を日時として扱ってくれるのですが、

その解決方法だとソースExcelが更新される度にExcel編集しなければならず、ITリテラシーの低いメンバーの

定型業務として成り立ちません。

また、列名「日付」に渡す値をYYYY/MM/DDの様に時刻を含まない書式にするとExcel側でもQV側で特に何も考えずに扱えるのですが・・・

ソースExcelにはどうしてもhh:mmが付いてきてしまい、そうなるとDate#()でDate型にすることができないようです。

解決方法ありますでしょうか?

Labels (1)
1 Solution

Accepted Solutions
chakiw5
Contributor III
Contributor III

これはそのまま、これで日付関数が使えました。

Timestamp#('2018/10/01 15:19','YYYY/MM/DD hh:mm')

View solution in original post

4 Replies
chakiw5
Contributor III
Contributor III

これはそのまま、これで日付関数が使えました。

Timestamp#('2018/10/01 15:19','YYYY/MM/DD hh:mm')

mokitsu61
Creator
Creator
Author

ありがとうございます。

第2パラメータで書式を指定したところ、Timestamp#()だけでなくDate#でもいけました。

APIリファレンスではDate#(), Timestamp#()の第2パラメータは戻り値のフォーマット指定の様に読めますが、入力値の書式を指定するんですね。

kentaroWakamatsu
Creator II
Creator II

ユーザー側のファイルの値が、きちんとシリアル値であればあまり気にする事はないのですが、フォーマットとしてファイルを提供しないと、書式が文字列の場合もあるので、エクセルの取り込みは慎重に記述した方が良いでしょうね。

添付の値は、上はともにシリアル値ですが、下の3つは文字列です。

こういった混在データも以下のように記載してやる事で、対応が可能ですので、参考にして下さい。

Timestamp(ALT(日付                                                           //1~2行目のシリアル値に対応

                         ,Timestamp#(日付,'YYYY/M/D hh:mm')      //4行目のテキストコンバート用

                         ,Timestamp#(日付,'YYYY/MM/DD h:mm')     //5行目のテキストコンバート用

                         ,Timestamp#(日付,'YY年M月D日 h時m分')    //6行目のテキストコンバート用

       )

                    ,'YYYY/MM/DD hh:mm') as 日付

他にも書式パターンは複数あるため、全て網羅すると処理時間も増えるので、どこまでカバーするかといった事も考えると、取り込み用のファイルは、テンプレートとして用意してあげるのがベターでしょうけど、、、、

mokitsu61
Creator
Creator
Author

なるほど、複数のフォーマット指定も可能なんですね。

ありがとうございます。