Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Toronto Sept 9th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
bobbydave
Creator III
Creator III

Date issue

XXXXXXXXX_MSL v0.169 Apr16.xlsx

XXXXXXXXX_MSL v0.169 May16.xlsx

XXXXXXXXX_MSL v0.169 June16.xlsx

XXXXXXXXX_MSL v0.169 July16.xlsx

XXXXXXXXX_MSL v0.169 Aug16.xlsx

I want to get the date from this file.

(Subfield(SubField(filename(), ' ', 3), '.', 1)  as Date

Result:

Apr16

May16

June16

July16

Aug16

Which is fine until I change it into the date format.

Date below converted wont pick up July and June as they are in MMMM and not MMM format like Apr May and Aug

Date(Date#(Subfield(SubField(filename(), ' ', 3), '.', 1), 'MMMYY'), 'MMM YYYY')  as Date

Apr 2016

May 2016

Aug 2016

Any ideas how I can get all months?

1 Solution

Accepted Solutions
sunny_talwar

Here is a sample for you to play around with

LOAD *,

  Date(MonthStart(Alt(Num(Date#(SubField(FileBaseName, ' ', -1), 'MMMYY')), Num(Date#(SubField(FileBaseName, ' ', -1), 'MMMMYY')))), 'MMM YYYY') as Date;

LOAD * Inline [

FileBaseName

XXXXXXXXX_MSL v0.169 Apr16

XXXXXXXXX_MSL v0.169 May16

XXXXXXXXX_MSL v0.169 June16

XXXXXXXXX_MSL v0.169 July16

XXXXXXXXX_MSL v0.169 Aug16

];

View solution in original post

3 Replies
sunny_talwar

How about this:

Date(MonthStart(Alt(Num(Date#(Left(SubField(FileBaseName(), ' ', -1), 'MMMYY')), Num(Date#(Left(SubField(FileBaseName(), ' ', -1), 'MMMMYY')))), 'MMM YYYY') as Date


Date(MonthStart(Alt(Num(Date#(SubField(FileBaseName(), ' ', -1), 'MMMYY')), Num(Date#(SubField(FileBaseName(), ' ', -1), 'MMMMYY')))), 'MMM YYYY') as Date

sunny_talwar

Here is a sample for you to play around with

LOAD *,

  Date(MonthStart(Alt(Num(Date#(SubField(FileBaseName, ' ', -1), 'MMMYY')), Num(Date#(SubField(FileBaseName, ' ', -1), 'MMMMYY')))), 'MMM YYYY') as Date;

LOAD * Inline [

FileBaseName

XXXXXXXXX_MSL v0.169 Apr16

XXXXXXXXX_MSL v0.169 May16

XXXXXXXXX_MSL v0.169 June16

XXXXXXXXX_MSL v0.169 July16

XXXXXXXXX_MSL v0.169 Aug16

];

sunny_talwar

In case you want to stick with FileName() function, rather than FileBaseName(), you can try this:

Date(MonthStart(Alt(Num(Date#(SubField(SubField(FileName(), ' ', -1), '.', 1), 'MMMYY')),

  Num(Date#(SubField(SubField(FileName(), ' ', -1), '.', 1), 'MMMMYY')))), 'MMM YYYY') as Date

Sample:

LOAD *,

  Date(MonthStart(Alt(Num(Date#(SubField(SubField(FileName, ' ', -1), '.', 1), 'MMMYY')),

  Num(Date#(SubField(SubField(FileName, ' ', -1), '.', 1), 'MMMMYY')))), 'MMM YYYY') as Date;

LOAD * Inline [

FileName

XXXXXXXXX_MSL v0.169 Apr16.xlsx

XXXXXXXXX_MSL v0.169 May16.xlsx

XXXXXXXXX_MSL v0.169 June16.xlsx

XXXXXXXXX_MSL v0.169 July16.xlsx

XXXXXXXXX_MSL v0.169 Aug16.xlsx

];