2016-10-20 7 views
1

ich diesen Satz von Daten habe:Spotfire: Gewichteter Prozentrechnung in BarChart

Kind  Weight 
A  3 
A  3 
A  3 
B  2 
B  2 
C  1 

würde Ich mag eine Spotfire barchart zu schaffen, den Beitrag verschiedenen Art Spaltenwerte darstellen. Der Ausdruck von Spotfire in diesem Fall vorgesehen ist:

Count()/THEN [Value]/Sum([Value]) OVER (All([Axis.X])) 

Aber ich würde dies durch den Wert teilen, wie der Gewicht Spalt. Als Spotfire für eine Aggregieren Methode fragt habe ich versucht, dies erfolglos:

Count()/First([Weight]) THEN [Value]/Sum([Value]) OVER (All([Axis.X])) 

Für das Protokoll, ich bin kein berechneten Wert verwendet, weil meine Absicht eine dynamische BarChart haben.

Vielen Dank im Voraus.

+0

was würden Ihre erwarteten Ergebnisse aussehen? Können Sie das Balkendiagramm anhängen, das zeigt, was es im Vergleich zu dem, was die gewünschte Ausgabe ist, darstellt? – scsimon

+0

Ich hätte gerne ein Balkendiagramm, wo in meinem Beispiel A, B und C den gleichen Wert haben, der 33% ist. Die 3 Vorkommen von A werden durch ihr Gewicht geteilt, auch für B und C. Derzeit ist A bei 50%, B bei 33% und C bei 17% – saad0n87

+0

Well C ist 1, also 1/1 ist 100% ... wie wäre das 33%? A sollte 33 und B sollte 50 sein ... wie bekommt man 33 für alle? – scsimon

Antwort

1

Basierend auf Ihren gewünschten Logik, können Sie auf Ihrem VALUE AXIS Ihrer Bar Chart verwenden diese:

UniqueCount([Kind])/UniqueCount([Kind]) OVER (All([Axis.X])) 

Dies funktioniert, wenn der Weight gleich der Count of Kind

nicht

Wenn Ihr Weight ändern könnte Wenn zum Beispiel Kind A ein Gewicht von 2 anstelle von 3 hätte, aber immer noch 3 Zeilen hätten, könnten Sie Ihre Logik folgendermaßen ausführen:

  1. Fügen Sie eine berechnete Spalte ein: Count([Kind]) OVER ([Kind])/Max([Weight]) OVER ([Kind]). Benennen Sie diese Spalte WeightedWeight
  2. Verwenden Sie diese Formel auf den VALUE AXIS Ihr Balkendiagramm Max([WeightedWeight])/UniqueCount([Kind]) OVER (All([Axis.X]))
+0

Ihre Lösung mit dem berechneten funktioniert gut. Vielen Dank für Ihre Hilfe und Geduld. – saad0n87

+0

Kein Problem. Ich war zuerst verwirrt, weil dein Problem ziemlich abstrakt war, aber ich war froh, dass ich helfen konnte. Achten Sie darauf, korrekte Antworten auf alle Ihre Fragen zu akzeptieren. http://stackoverflow.com/help/someone-answers – scsimon