2 Replies Latest reply: Sep 27, 2012 9:49 AM by Marcus Jirak RSS

    Feldnamen aus strings zusammensetzen

      Hallo Zusammen!

      Bei der nachfolgend gezeigten Pivottabelle mit den 2 Dimensionen Artikelnummer (numerisch, Feldname: ARTIKELNR) und Aussendienstler (alphanumerisch: 'AD01', 'AD02', ..., 'AD0x', Feldname: VERTRETER) bin ich auf eine kleine Herausforderung gestoßen:

       

      Jeder unserer Aussendienstler hat für bestimmte Artikel bestimmte Absatzvorgaben, die in der Datenbasis in den Feldern AKT.AD01.SOLL, AKT.AD02.SOLL ... AKT.AD0x.SOLL. Diese Sollzahlen möchte ich in der Tabelle anzeigen lassen. Um das für jeden Aussendienstler individuell machen zu können, muss ich die Vertreterbezeichnung (AD0x) aus der Dimension in meine Formel einbauen.

       

      Mit der Formel

       

      = 'AKT.' & VERTRETER & '.SOLL'
      

       

      bekomme ich von Qlikview für jede AD-Dimension das korrekte String ausgegeben, z.B. AKT.AD01.SOLL. Allerdings möchte ich freilich nicht das String ausgeben, sondern den Wert des korrespondierenden Feldes.

       

      Ich bin sicher, es handelt sich nur um eine lächerliche Kleinigkeit. Aber ich habe nichts gefunden, was mir helfen könnte.

       

      Danke im Voraus für die Antworten.

       

      QV Server - 172.16.1.png

       

      P.S. wie stellt man diese DE-EN-Übersetzung aus?

        • Re: Feldnamen aus strings zusammensetzen
          Stefan Wühl

          So einfach ist meines Erachtens die Sache nicht, denn wenn QVzuerst denn String im Kontext der Dimension auswerten soll und dann den String als Feld betrachten und den Wert holen soll, müsste der Ausdruck zweimal evaluiert werden - was QV in diesem Kontext nicht macht.

           

          Vielleicht ist es eine Möglichkeit, dass du deine Quelltabelle

           

          AKT.AD01.SOLL, AKT.AD02.SOLL, AKT.AD03.SOLL,...

          100, 200, 300, ...

           

          von einer Crosstable Struktur in eine straight tabel umwandeln kannst:

           

          AD, SOLL

          AD01, 100

          AD02, 200

          AD03, 300

          ...

           

          Das kannst du mit einem CROSSTABLE LOAD Prefix machen. Das Feld AD kannst du dann mit deinem Aussendienstmitarbeiter-Feld verknüpfen, dann erhält du automatisch von QV die korrekten Soll Zahlen, ohne herumtricksen zu müssen.

           

          Gruß,

          Stefan

            • Re: Feldnamen aus strings zusammensetzen

              Es ist grundsätzlich so, dass er mir den String sowohl aus der jeweiligen Dimension berechnet, als auch anschließend der jeweiligen Dimension korrekt zuordnet. Allerdings ist die Ausgabe eben ein String, kein Feldwert. Es wäre also klasse, wenn es einen Befehl im Stile von z.B. makefield('String1' & 'string2') gäbe, damit alles hinter dem = als Feldname interpretiert wird.

               

              Kannst Du das Crosstable-Thema ein wenig erläutern? Ich denke nämlich nicht, dass das bei meiner Problemstellung hilft.

               

              Die zugrunde liegende Tabelle hat folgenden Aufbau, die ich aus der Datenbasis (.csv) 1:1 übernommen habe:

               

              AKTIONSNR $AKT.GESAMT.SOLL AKT.AD01.SOLLAKT.AD02.SOLLAKT.AD03.SOLL...AKT.AD0x.SOLL
              845225.0008.55023.00015.25010.000
              84610.200...
              ......

               

              Daraus müsste ich ja, wenn ich Dich richtig verstehe, folgende Form bauen:

               

              AKTIONSNR $VETRETERAKT.SOLL
              845AD018.550
              845AD0223.000
              845AD0315.250
              .........
              845AD0x10.000

               

              Das klingt plausibel. Aber bei der Frage, wie das umzusetzen wäre, bin ich dann komplett verloren.