Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

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

1 Solution

Accepted Solutions
Not applicable
Author

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);

View solution in original post

11 Replies
Not applicable
Author

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

Not applicable
Author

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

Not applicable
Author

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);

Not applicable
Author

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

Not applicable
Author

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

Not applicable
Author

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

Not applicable
Author

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

Not applicable
Author

Vielen Dank!!! Du hast mir viel geholfen. Leider haben die Werte in X-Axis keine Reihenfolge, so die Verteilung ist falsch... Die Lösung mit:

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);

funktioniert richtig gut, aber ich weiß nicht wie ich das gleiche aber für die 4 Spalten machen kann. Vielen Dank für deine Zeit!

Eduardo

Not applicable
Author

Vielen Dank!!! Du hast mir viel geholfen. Leider haben die Werte in X-Axis keine Reihenfolge, so die Verteilung ist falsch... Die Lösung mit:

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);

funktioniert richtig gut, aber ich weiß nicht wie ich das gleiche aber für die 4 Spalten machen kann. Vielen Dank für deine Zeit!

Eduardo