Qlik Community

Qlik DataMarket Discussions

Discussion Board for collaboration regarding Qlik DataMarket.

Not applicable

Jahr aus Excel-Dateinamen extrahieren

Hallo zusammen,

wenn ich eine Excel-Datei mit folgendem Namen: Sep_2015 habe und diese hochladen möchte, wie kann ich im Skript hinzufügen, dass er mir den Monat und das Jahr als Spalten in QlikView anzeigt?

4 Replies
MVP
MVP

Re: Jahr aus Excel-Dateinamen extrahieren

Hallo Teresa,

Das kannst du mit den Datei Funktionen und Subfield() machen:

LOAD

     AnderesFeld,

     Subfield(FileBaseName(), '_',1) as Monat,

     Subfield(FileBaseName(), '_',2) as Jahr

FROM

Sep_2015.xls

(...);

MVP
MVP

Re: Jahr aus Excel-Dateinamen extrahieren

Den Monat würde ich auch gleich in ein entsprechendes duales QV-Format umwandeln (unter der Annahme, dass die Monatskürzel im Dateinamen den Kürzeln der Systemvariablen MonthNames entsprechen.

LOAD

     AnderesFeld,

     Month( Date#( Subfield(FileBaseName(), '_',1) ,'MMM'))  as Monat,

     Subfield(FileBaseName(), '_',2) as Jahr

FROM

Sep_2015.xls

(...);

Not applicable

Re: Jahr aus Excel-Dateinamen extrahieren

Vielen Dank! Das scheint der richtige Befehl zu sein. Ich habe nur das Problem, dass ich die 2012er Dateien ab April nicht habe und bei folgenden Skript lädt er nur die 2012 (Jan - Mrz) hoch und bricht dann ab statt mit den 2013er Dateien weiter zu machen. Wo liegt das Problem?

FOR Each year in 12, 13, 14, 15
FOR Each month in 'Jan', 'Feb', 'Mrz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'

Directory;
Tabelle:
LOAD
[Pers.-Nr.],
Name,
Gesamtbrutto,
[Kostenrelevante Nettobe-/-abzüge],
[SV-AG Anteil],
Umlage,
[Pauschale Steuern],
'Wiesbaden'
as SO,
Subfield(FileBaseName(), '_',1) as Monat,
Subfield(FileBaseName(), '_',2) as Jahr
Gesamtkosten



FROM
[..\Documents\$(month)_$(year).xlsx]
(
ooxml, embedded labels, header is 2 lines, table is $(month)_$(year));

Next

Employee
Employee

Re: Jahr aus Excel-Dateinamen extrahieren

I would do this slightly differently:

For each vFileName in FileList('<pfad>\*.xls')
Let vFileShortName = SubField(vFileName,'\',-1);
Let vFileBaseName = Left(vFileShortName,Index(vFileShortName,'.',-1)-1);
Let month = Month( Date#( Subfield(vFileBaseName, '_',1) ,'MMM'));
Let year = Subfield(vFileBaseName, '_',2);

Tabelle:
LOAD *,
'$(month)'
as Monat,
'$(year)'
as Jahr
FROM "$(vFileName)"
(
ooxml, embedded labels, header is 2 lines, table is $(month)_$(year));
Next

This will work also for missing files.

HIC

Community Browser