KNOWLEDGE BASE

Verwendung der Attributfunktion (ATTR)


Veröffentlicht: 27 May 2014
Zuletzt geändert am: 24 Aug 2022

Frage

Wie wird die Attributfunktion (ATTR) verwendet und wie unterscheidet sie sich von anderen Aggregationen wie MIN oder SUM?

Umgebung

Tableau Desktop

Antwort

ATTR() gibt mehrere Werte an

Die ATTR() Aggregation gibt mehrere Werte an, aber nur ein Wert wurde erwartet.

Zum Beispiel bei der Verschmelzung von zwei oder mehr Datenquellen werden Felder der sekundären Datenquelle automatisch in ATTR() verpackt, da Felder einer sekundären Datenquelle aggregiert sein müssen.Falls es mehrere Werte für eine sekundäre Dimension gibt, dann zeigt ATTR(Sekundäre Dimension) in der Ansicht ein Sternchen an, ausführlicher erklärt in Problembehandlung bei der Datenverschmelzung: Anzeige von Sternchen auf dem Blatt.

Falls eine andere Aggregation statt ATTR() verwendet werden würde, dann würde Tableau Desktop irreführende Informationen anzeigen. Wie zum Beispiel MIN(Sekundäre Dimension) würde zuerst den Dimensionswert anzeigen, und man könnte auf keine Weise sehen, dass die sekundäre Datenquelle eigentlich mehrere Werte enthält.Das Sternchen ist eine Indikation dafür, dass die Beziehung oder die Ansicht angepasst werden müssen.
 

So funktioniert es

ATTR() vergleicht alle Werte jedes Datensatzes in den zugrunde liegenden Daten, die in der Ansicht in einer Partition gruppiert sind (z.B. ein Balken, ein Kreis, eine Zelle, etc... ) und falls die Werte gleich sind, gibt ATTR() diesen Wert zurück. Sonst gibt ATTR() ein Sternchen zurück.

In ihrer einfachsten Form sieht die Formel folgendermaßen aus:
 
IF MIN ([dimension]) = MAX ([dimension]) THEN MIN ([dimension]) ELSE "*"  END

Die ATTR-Funktion wertet alle Elemente eines Felds aus und gibt einen Wert zurück, wenn 1) es nur einen einzigen Wert gibt (MIN = MAX) oder 2) alle Elemente gleichwertig sind (MIN = MAX); ansonsten gibt sie "*" zurück. Dies kann als "es gibt mehr als einen Wert" interpretiert werden. 

Sie können die grundlegende ATTR-Funktion ausbauen, indem Sie Bedingungen hinzufügen, die besagen, wann die ATTR-Funktion ausgelöst werden soll. Ein Beispiel:
 
IF ISNULL ([dimension]) THEN NULL
ELSEIF MIN ([dimension]) = MAX ([dimension]) THEN MIN ([dimension])
ELSE "*" 
END

 
(Aktualisieren Sie die Dimensionsfelder [Dimension] mit Ihren eigenen Dimensionen.)
 

Anwendungsfälle für ATTR()

  • Im obigen Beispiel kann ATTR() darauf hinweisen, dass es mehrere Werte aus der sekundären Datenquelle gibt
     
  • Zur QuickInfo hinzugefügte Dimensionen auf der Karte "Markierungen" werden automatisch in ATTR() verpackt, da Dimensionen auf der QuickInfo aggregiert sein müssen. Falls eine andere Aggregation, wie zum Beispiel MIN() verwendet wird, zeigt die QuickInfo einen einzigen Wert an. Dies kann den Betrachter fälschlicherweise dazu verleiten zu denken, dass es nur einen einzigen Wert gibt.Deshalb zeigt ATTR() ein Sternchen an als Indikation, dass die Ansicht oder die Werte, die zur QuickInfo hinzugefügt wurden angepasst werden müssen.Siehe Sternchen in QuickInfos
     
  • Wie andere Aggregationen kann ATTR() dazu verwendet werden einen nicht-aggregierten Wert in einen aggregierten Wert umzuwandeln um Aggregationsfehler in der Berechnung zu lösen.Siehe Fehlermeldungen in einem Berechnungs-Editor aggregieren

    Bitte beachten Sie, dass wenn eine Berechnung, die numerische Daten zurückgibt, ATTR() enthält, im Falle, dass es mehrere Werte in ATTR() gibt, die Berechnung anstatt eines Sternchens NULL zurückgibt.
     
  • ATTR() kann als Vorsichtsmaßnahme verwendet werden, um Datenänderungen vorzubeugen

Einschränkungen

  • Berechnete Felder, die ATTR() beinhalten können nicht dazu verwendet werden manuell ein dynamisches Sortieren festzulegen
  • Berechnete Felder, die ATTR() beinhalten können möglicherweise als Gesamtresultat NULL zurückgeben, auch wenn es an einem anderen Ort in der Ansicht den erwarteten Wert zurückgibt.Siehe Gesamtresultate sind in berechneten Feldern, die ATTR() einschließen leer

Zusätzliche Informationen

Über diesen Artikel diskutieren... Feedback-Forum
Hat dieser Artikel das Problem gelöst?