4 Replies Latest reply: Oct 7, 2015 6:01 AM by Henric Cronström RSS

    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?

        • Re: Jahr aus Excel-Dateinamen extrahieren
          Stefan Wühl

          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

          (...);

            • Re: Jahr aus Excel-Dateinamen extrahieren
              Stefan Wühl

              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

              (...);

            • 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

                • Re: Jahr aus Excel-Dateinamen extrahieren
                  Henric Cronström

                  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