KNOWLEDGE BASE

Kennzahl kann nicht in Dimension konvertiert werden


Veröffentlicht: 01 May 2013
Zuletzt geändert am: 17 Mar 2023

Problem

Wenn Sie ein berechnetes Feld erstellen, erkennt Tableau Desktop dieses möglicherweise als Kennzahl, nicht als Dimension. Wenn Sie versuchen, das Feld in eine Dimension umzuwandeln, ist dies unter Umständen nicht möglich.

Umgebung

Tableau Desktop

Lösung

Option 1: Hinzufügen eines FIXED-Statements

Die LOD (Detailgenauigkeit)-Funktion FIXED kann in eine Dimension konvertiert werden. Abhängig von der ursprünglichen Berechnung variiert die exakte Lösung, aber denken Sie daran, dass die Rechnung insgesamt nicht aggregiert sein darf (FIXED, nicht aggregierte Felder, Parameter und konstante Literalwerte sind allesamt nicht aggregiert). Sehen Sie sich die folgenden Beispiele an:
 
Beispiel 1:
Kann nur eine Kennzahl sein:
IF SUM([SALES]) < 100
THEN "Low"
ELSE "High"
END	
Kann in eine Dimension konvertiert werden:
IF { FIXED [Region] : SUM( [Umsatz] ) } < 100
THEN "Low"
ELSE "High"
END	
 
Beispiel 2:
Kann nur eine Kennzahl sein:
AVG( 
   IF { FIXED [Region] : SUM( [Umsatz] ) } < 100 
   THEN "Low" 
   ELSE "High" 
   END 
)
Kann in eine Dimension konvertiert werden:
{FIXED [Kategorie] : AVG(
   IF { FIXED [Region] : SUM( [Umsatz] ) } < 100
   THEN "Low"
   ELSE "High"
   END
) }
 
Beispiel 3:
Kann nur eine Kennzahl sein:
ATTR( [Kategorie] ) + " value"
Kann in eine Dimension konvertiert werden:
{ FIXED [Bestell-ID] : MIN( [Kategorie] ) } + " value"
 
Hinweis: ATTR() musste durch MIN() ersetzt werden, da ATTR() eine Tabellenfunktion ist und nicht in einem FIXED-Ausdruck verwendet werden kann. ATTR() gibt NULL zurück, wenn sich in der Ansicht mehr als ein eindeutiger Wert von [Kategorie] in einer Partition befindet (Tupel, Zelle, Balken, Linien, Punkt usw.) befindet, wodurch sich Probleme mit der Datenqualität leichter erkennen lassen. MIN() gibt andererseits immer den Minimalwert zurück, der alphabetisch an erster Stelle für Zeichenkettenwerte steht. Solange MIN( [Kategorie] ) auf eine Dimension oder Kombination von Dimensionen festgelegt ist, die immer nur einen Kategoriewert hat, gibt es keine Probleme.
 

Option 2: Entfernen von Aggregationen

Manchmal wird die Aggregation nicht wirklich benötigt. Zum Beispiel gibt { FIXED [Region] : SUM( [Umsatz] } den Gesamtumsatz pro Region zurück. Wenn aber die Datenquelle nur einen Datensatz pro Region enthält, gibt [Umsatz] denselben Wert zurück.
 
Beispiel 1:
Kann nur eine Kennzahl sein:
IF SUM([SALES]) < 100
THEN "Low"
ELSE "High"
END	
Kann in eine Dimension konvertiert werden:
IF [Umsatz] < 100
THEN "Low"
ELSE "High"
END	

 

Option 3: Verwenden eines von Tableau generierten Partitionsfelds

In einigen Fällen kann es möglich sein, die ursprüngliche Berechnung durch ein von Tableau generiertes Partitionsfeld zu ersetzen. Anweisungen finden Sie unter Erstellen von Partitionen anhand einer fortlaufenden Kennzahl
.
 

Option 4: Durchführen der Berechnung in Tableau Prep

Die Ausgabe von Tableau Prep ist immer nicht aggregiert und kann daher immer in eine Dimension umgewandelt werden. Abhängig von der ursprünglichen Berechnung unterscheiden sich die erforderlichen Schritte in Tableau Prep. Im Allgemeinen brauchen Sie für die Replizierung eines Ausdrucks wie SUM( [Umsatz] ) in Tableau Prep einen Aggregieren-Schritt.

Tabellenberechnungen lassen sich nicht in nicht aggregiert umwandeln, da sie nicht in Detailgenauigkeitsfunktionen gesetzt werden können. Einige Tabellenberechnungen können in Tableau Prep neu erstellt werden. Beispielsweise kann LOOKUP() manchmal durch einen Shifted-Self Join ersetzt werden. Siehe Lookup-Tabellenberechnung in Tableau Prep
 

Option 5: Datenverknüpfung anstelle von Datenverschmelzung

Felder aus einer sekundären Datenquelle müssen aggregiert werden. Dies ist eine Beschränkung der Datenverschmelzung und es gibt keine Umgehung dafür. Ziehen Sie eine datenbankübergreifende Verknüpfung oder Verknüpfen in Tableau Prep in Erwägung.
 

Ursache

Wurde im berechneten Feld eine Aggregation verwendet, kann die Kennzahl nicht in eine Dimension konvertiert werden, da die Berechnungsergebnisse dynamisch sind.

Beispielsweise liefert SUM( [Umsatz] ) andere Ergebnisse, wenn sich [Region] anstelle von [Kategorie] im Zeilen-Container befindet. Jedoch ergibt {FIXED [Region] : SUM( [Umsatz] ) } immer den Gesamtumsatz pro Region. Das Hinzufügen des FIXED-Statements teilt Tableau mit, wie SUM() berechnet werden soll, das dann wiederum Tableau mitteilt, wie jeder Datensatz aufgrund des Gesamtumsatzes der entsprechenden Region gruppiert wird.

 

Zusätzliche Informationen

Warum verwendet Tableau Dimensionen und Kennzahlen?

Tableau nutzt die gemeinsamen Eigenschaften von Daten, die von sehr unterschiedlichen Datenquellen gemeinsam genutzt werden, um intelligente Entscheidungen darüber zu treffen, wie Daten angezeigt werden sollen.

Ihre Datenquelle enthält beispielsweise ein Feld mit numerischen Werten, das "ID" heißt.  Wenn Sie "ID" zum Zeilen-Container hinzufügen, erhalten Sie statt eines sinnlosen Balkendiagramms, das alle ID-Werte addiert, eine Zeile für jede ID.  Woher weiß Tableau, wie das zu tun ist?  Felder mit der Bezeichnung "ID" sind ein Sonderfall und werden standardmäßig als Dimensionen betrachtet.

Dimensionen enthalten Daten, anhand derer andere Daten gruppiert werden. Daher weiß Tableau, dass Dimensionen in der Regel Kopfzeilen anstelle von Diagrammen sein sollen, selbst wenn die Dimension numerische Daten enthält. 

Dimensionen und Kennzahlen sind Konzepte aus dem Datenmanagement, die Tableau Hinweise dazu geben, wie die Daten angezeigt werden sollten. Weitere Informationen dazu, wie Tableau Dimensionen und Kennzahlen behandelt, erhalten Sie unter Dimensionen und Kennzahlen, blau und grün

 
Hat dieser Artikel das Problem gelöst?