HASONEVALUE-Funktion (DAX)
Gibt TRUE zurück, wenn der Kontext für columnName bis zu nur noch einem unterschiedlichen Wert gefiltert wurde. Anderenfalls FALSE.
Syntax
HASONEVALUE(<columnName>)
Parameter
- columnName
Der Name einer vorhandenen Spalte mit Standard-DAX-Syntax. Kann kein Ausdruck sein.
Rückgabewert
TRUE, wenn der Kontext für columnName bis zu nur noch einem unterschiedlichen Wert gefiltert wurde. Anderenfalls FALSE.
Hinweise
- Ein gleichwertiger Ausdruck für HASONEVALUE() ist COUNTROWS(VALUES(<columnName>)) = 1.
Beispiel
Im folgenden Beispiel möchten Sie eine Formel erstellen, die überprüft, ob der Kontext anhand eines Werts in Slices aufgeteilt ist, um einen Prozentwert im Vergleich zu einem vordefinierten Szenario zu schätzen. In diesem Fall möchten Sie Verkäufe von Wiederverkäufern mit Verkäufen im Jahr 2007 vergleichen, dabei müssen Sie wissen, ob der Kontext nach einzelnen Jahren gefiltert wird. Außerdem soll, wenn der Vergleich bedeutungslos ist, ein leerer Wert zurückgegeben werden.
Wenn Sie dem Szenario folgen möchten, können Sie das Arbeitsblatt mit dem Modell aus dem Arbeitsblatt PowerPivot-Beispieldaten herunterladen.
Erstellen Sie ein Measure mit der Bezeichnung [ResellerSales compared to 2007] mithilfe des folgenden Ausdrucks:
=IF(HASONEVALUE(DateTime[CalendarYear]),SUM(ResellerSales_USD[SalesAmount_USD])/CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]),DateTime[CalendarYear]=2007),BLANK())
Nach dem Erstellen des Measure sollte unter [ResellerSales compared to 2007] ein leeres Ergebnis wie folgt angezeigt werden:
ResellerSales compared to 2007
Der Grund für die leere Zelle im Ergebnis ist, dass im Kontext keine einzelnen Jahresfilter vorhanden sind.
Ziehen Sie DateTime[CalendarYear] in das Feld Spaltenbezeichnungen; die Tabelle sollte wie folgt aussehen:
Spaltenbezeichnungen
2005
2006
2007
2008
ResellerSales compared to 2007
24.83 %
74.88 %
100.00 %
50.73 %
Ziehen Sie ProductCategory[ProductCategoryName] in das Feld Zeilenbezeichnungen, um in etwa folgendes Ergebnis zu erhalten:
ResellerSales compared to 2007
Spaltenbezeichnungen
Zeilenbezeichnungen
2005
2006
2007
2008
Accessories
6.74 %
31.40 %
100.00 %
55.58 %
Bikes
28.69 %
77.92 %
100.00 %
53.46 %
Clothing
3.90 %
55.86 %
100.00 %
44.92 %
Components
11.05 %
65.99 %
100.00 %
38.65 %
Gesamtergebnis
24.83 %
74.88 %
100.00 %
50.73 %
Haben Sie bemerkt, dass die Gesamtergebnisse unten in den Spalten angezeigt wurden, jedoch nicht für Zeilen? Das liegt daran, dass der Kontext für Gesamtergebnisse in Zeilen mehr als ein Jahr voraussetzt, für Spalten jedoch ein einzelnes Jahr.
Ziehen Sie DateTime[CalendarYear] in das Feld Horizontale Slicer, und ziehen Sie SalesTerritory[SalesTerritoryGroup] in das Feld Horizontale Bezeichnungen. Sie sollten ein leeres Resultset sehen, da die Tabelle Daten für mehrere Jahre enthält. Wählen Sie 2006 im Slicer aus, und die Tabelle sollte jetzt wieder Daten enthalten. Wählen Sie weitere Jahre aus, um zu sehen, wie sich die Ergebnisse ändern.
Zusammengefasst können Sie mit HASONEVALUE() feststellen, ob der Ausdruck im Kontext eines einzelnen Werts für columnName ausgewertet wird.