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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
qliknewbie_admin
Contributor II
Contributor II

How to select certain date from filename using sub scanfolder function?

Hi,

At the moment, I am using sub scanfolder to get all files from different folder(its a yearly folder..inside this yearly folder got file based on month).

Now i got new request to only select few files based on certain month-year file.

I am stuck how to squeeze in date selection inside the loop based on the filename.

Request help from you guys.

below is sample of my script;

 

SUB Scanfolder(Root)

For each FileExtension in 'xlsx'

FOR Each FoundFile in FileList(Root &'\*.'& FileExtension)

T1:

LOAD ID,

    NAMES,

    SAL,

    YEARS

   

  FROM

[$(FoundFile)]

(ooxml, embedded labels, table is Sheet1);

  Next FoundFile 

NEXT FileExtension

 

 

For Each SubDirectory in DirList (Root & '\*' ) 

Call ScanFolder(SubDirectory) 

Next SubDirectory 

End Sub 

Call ScanFolder('D:\Personal\LOADING DATA FROM MULTIPLE FOLDERS') ;

Labels (1)
5 Replies
TheLazyDevelopr
Creator
Creator

How is certain month year selected? Is it current month year? 
You could try something with the FIleName function or just use a variable inside your filename that will only pull for the certain months/years you need. 
Ex: FROM [lib://NS/ExcelFile*202407*.xlsx] or FROM [lib://NS/ExcelFile*$(vSelectedDate)*.xlsx]

https://help.qlik.com/en-US/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/FileFun...


qliknewbie_admin
Contributor II
Contributor II
Author

The file name is like below:

1. 31 December 2024.xlsx

2. 30 November 2024.xlsx

3. 31 October 2024.xlsx

4. 30 September 2024.xlsx

4. 31 December 2023.xlsx

2. 30 November 2023.xlsx

 

I only want to include 3 months below. 

1. 31 December 2024.xlsx

2. 30 November 2024.xlsx

3. 31 October 2024.xlsx

 

 

marcus_sommer

It's quite simple by querying the file-name per if-loop within the filelist-loop. At first the relevant date-part is extracted and converted to a real date and this is then queried with >= and <= of your wanted periods, for example with something:

if date(date#(subfield(subfield('$(FoundFile)', '\', -1), '.', 1), 'DD MMMM YYYY')) >= MyPeriod then
load ...
end if 

 

TheLazyDevelopr
Creator
Creator

True.gif

qliknewbie_admin
Contributor II
Contributor II
Author

hi all, thanks for the reply. 

i got it solved..all i need just simply use where clause to get the between dates.