11 Replies Latest reply: Oct 23, 2012 10:18 AM by eduqlikview RSS

    Neue Tabelle erstellen und mit Daten füllen

      Hallo zusammen,

       

      Ich brauche Hilfe mit Qlikview! Zuerst habe ich eine 1-Spalte-Tabelle hochgeladen, mit Werte zwischen 0 und 1. Ich möchte eine leere Tabelle mit 2 Spalten erzeugen. Die erste Saplte sollte mit der Reinfolge 0; 0,001; 0,002 etc bis 1 füllen werden. Die zweite Spalte sollte mit dem Anzahl der Werte in die Intervalle 0-0,001; 0,001-0,002 etc bis 0,999-1 füllen werden.

       

      Könnt Ihr mir helfen??

       

      Vielen Dank fur eure Zeit,

       

       

      Eduardo

        • Re: Neue Tabelle erstellen und mit Daten füllen

          Hallo,

           

          das kann man direkt mit einem Diagramm lösen

           

          1. erstelle ein neues Diagramm, Typ Tabelle
          2. Dimensionsformel: class( Spaltenname, 0.001 )
          3. Werteformel: count( Spaltenname )

           

          Falls es zwingend im Skript als Tabelle erstellt werden soll, einfach nochmal melden.

           

          Viele Grüße

          Markus Bauernschmitt

            • Re: Neue Tabelle erstellen und mit Daten füllen

              Vielen Dank für deine Hilfe Markus, aber ich habe es nicht geschafft... In mein Skrypt habe ich eine leere tabelle mit 2 Spalten erzeugt:

               

               

              TabelleLeer:

              Load

              [Intervalle]

              ,
              [AnzahlZ1V1],

               

              Dann habe ich ein Diagramm, Typ Tabelle erzeugt.

              In "Dimensions des Diagramms" habe ich eine "neue dynamische Dimension erzeugt. Expression: class(Intervalle, 0.001)

              In Formeln habe ich geschrieben: count([Z1V1 iO&niO])

               

              [Z1V1 iO&niO] das ist der Name meine Spalte mit Werte zwichen 0 und 1.

               

              Ich weiss nicht warum aber Qlikview versteht "Intervalle" nicht, wenn ich class(Intervalle, 0.001) schreibe...

               

              Am ende bekomme ich das:

               

              =class(Intervalle, 0.001) count([Z1V1 iO&niO])
              3604
              -3604

               

               

              Kannst du mir bitte weiterhelfen?? Och bin ganz neu mit Qlikview. Außerdem wurde ich es gern im Skript als Tabelle erstellen, um später diese zwei Spalten in einem Liniendiagramm zu plotten.

               

              Vielen Dank!!!

               

              Eduardo

                • Re: Neue Tabelle erstellen und mit Daten füllen

                  Hallo,

                   

                  man kann zwar die Ergebnisse auch im Skript materialisieren, aber das ist nicht die eigentliche Idee von Qlikview.

                   

                  Zur Korrektur deines Diagrammes

                  Dimension: =class([Z1V1 iO&niO], 0.001)

                  Wert: count([Z1V1 iO&niO])

                   

                   

                  Zum Erstellen einer Tabelle im Skript

                  B:

                  Load

                      Floor([Z1V1 iO&niO], 0.001) as A_Intervall,

                      count([Z1V1 iO&niO]) as Anzahl

                  Resident

                      A

                  Group By

                      Floor([Z1V1 iO&niO], 0.001);

                    • Re: Neue Tabelle erstellen und mit Daten füllen

                      Vielen Dank! Die zweite Lösung ist genau was ich brauche!!!!

                      • Re: Neue Tabelle erstellen und mit Daten füllen

                        Hallo Markus!

                         

                        Entschuldig bitte, dass ich dich noch einmal störe. Aber ich möchte mein Diagramm ein bischen ergänzen. Ich habe diese Input-Daten:

                         

                        Datum TagZ1V1 iO&niOZ1V2 iO&niOZ4V1 iO&niOZ4V2 iO&niO
                        01.08.20120,4170,170,1640,431
                        02.08.20120,4510,1870,1580,378
                        03.08.20120,4250,1680,1680,435
                        04.08.20120,4560,1740,170,456
                        05.08.20120,4180,1770,1830,441
                        06.08.20120,4510,1850,1650,416
                        07.08.20120,3990,1540,1490,441
                        08.08.20120,4830,1880,1660,451
                        09.08.20120,4770,2010,1720,484
                        10.08.20120,4720,1730,1530,419

                         

                        Ich möchte die 4 Verteilungskurven in das gleiche Diagramm erzeugen. (X-Axis soll gemeinsam sein 0; 0,001; 0,002 .... bis 0,999; 1).

                         

                        Außerdem wurde ich gern die Verteilung nur mit die Werte eines bestimmten Zeitraum erzeugen. Dafür habe ich die Spalte "Datum Tag". Ich wurde dann gern zuerst die Zeitraum wählen (zB von 5.08.2012 bis 10.08.2012) und mit diesen Werte die Verteilung bauen. Ist es das möglich?

                         

                        Noch einmal, vielen vielen Dank!!!!

                         

                        Eduardo

                          • Re: Neue Tabelle erstellen und mit Daten füllen

                            Hallo,

                             

                            bringe zuerst deine Werte in eine vernünftige Form.

                            Spalte1: Datum

                            Spalte 2: Reihenname

                            Spalte 3: Wert

                             

                             

                             

                            Im Notfall so

                             

                            LOAD Datum,

                                 'Z1V1' as Reihe,

                                 Z1V1 as Werte

                            FROM

                            [1.xlsx]

                            (ooxml, embedded labels, table is Tabelle1);

                             

                            LOAD Datum,

                                 'Z1V2' as Reihe,

                                 Z1V1 as Werte

                            FROM

                            [1.xlsx]

                            (ooxml, embedded labels, table is Tabelle1);

                             

                            LOAD Datum,

                                 'Z1V3' as Reihe,

                                 Z1V3 as Werte

                            FROM

                            [1.xlsx]

                            (ooxml, embedded labels, table is Tabelle1);

                             

                            LOAD Datum,

                                 'Z1V4' as Reihe,

                                 Z1V4 as Werte

                            FROM

                            [1.xlsx]

                            (ooxml, embedded labels, table is Tabelle1);

                             

                             

                            Jetzt erzeuge ein Liniendiagramm

                            Dimension:

                              1. Eintrag:  class( Werte, 0.01)

                              2. Eintrag:  Reihe

                             

                            Formel:

                                 count( Werte )

                             

                            Damit hat sich dein anderer Forumseintrag auch schon erledigt.

                            • Per Click läßt sich die Reihe einschränken
                            • Wenn in einem anderen Feld das Datum eingeschränkt wird, passt sich das Diagramm ebenfalls an.

                             

                            Ich wiederhole mich wahrscheinlich. Bitte in diesem Fall die Werte nicht gleich im Skript aggregieren

                    • Re: Neue Tabelle erstellen und mit Daten füllen

                      Hallo Eduardo,

                       

                      Versuche Sie diese Script:

                      Im Book1.xlsx habe ich einige Testdaten fur Tabelle1

                      --------------------------------------------------------------------------------

                      Tabelle1:

                      LOAD Werte,

                      ceil( Werte , 0.001 ) as UpperInterval

                      FROM

                      C:\Book1.xlsx

                      (ooxml, embedded labels, table is Sheet1);

                       

                      For counter=0 to 1 step 0.001

                       

                      temp:

                      LOAD * INLINE [

                          UpperInterval

                          $(counter)

                      ];

                       

                      NEXT counter;

                       

                      temp1:

                      noconcatenate Load UpperInterval resident temp;

                      left join

                      load UpperInterval, Werte resident Tabelle1;

                       

                      Tabelle2:

                      Load UpperInterval as Spalte1, Count(Werte) as Spalte2 Resident temp1

                      Group by UpperInterval;

                       

                      Drop tables temp1, temp;

                      Drop field UpperInterval;

                       

                      ----------------------------------------------------------------

                       

                      Ich hoffe das ist gut fur Sie,

                       

                      Carmen