Only() liefert einen Wert, wenn die aggregierten Daten nur ein einziges mögliches Ergebnis liefern. Wenn Sie beispielsweise nach dem einzigen Produkt suchen, bei dem der Preis pro Einheit 9 beträgt, wird NULL geliefert, wenn mehr als ein Produkt einen Preis pro Einheit von 9 aufweist.
Die Formel oder das Feld mit den Daten, die gemessen werden sollen.
SetExpression
Standardmäßig berechnet sich die Aggregierungsfunktion über alle wählbaren Werte. Alternativ können Sie die der Berechnung zugrunde liegenden Werte über die Auswahlformel bestimmen.
TOTAL
Der Zusatz TOTAL vor der Funktion bewirkt, dass die Berechnung über alle ausgewählten bzw. wählbaren Werte erfolgt, und nicht nur über diejenigen, die zu dem Wert der aktuellen Dimension zählen. Die Dimensionen des Diagramms werden also nicht berücksichtigt.
Mit TOTAL [<fld {.fld}>], wobei auf den Zusatz TOTAL eine Liste aus mindestens einem Feldnamen (d. h. einer Teilmenge der Diagrammdimensionsvariablen) folgt, erstellen Sie eine Teilmenge aller möglichen Werte.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle mit den folgenden Kennzahlen:
=Only({<UnitPrice={9}>} Product), um das einzige Product zu berechnen, das einen UnitPrice von 9 hat.
=Only({<Product={DD}>} Customer), um den einzigen Customer zu berechnen, der ein Product namens DD verkauft.
=Only({<UnitPrice={20}>} UnitSales) um die Anzahl von UnitSales zu berechnen, wobei UnitPrice gleich 20 ist.
=Only({<UnitPrice={15}>} UnitSales), um die Werte von UnitSales zu berechnen, wobei UnitPrice = 15 ist.
Results table
Only({<UnitPrice={9}>} Product)
Only({<Product={DD}>} Customer)
Only({<UnitPrice={20}>} UnitSales)
Only({<UnitPrice={15}>} UnitSales)
BB
Betacab
2
-
Beachten Sie in diesem Beispiel Folgendes:
Die erste Spalte gibt den Wert BB zurück, da dies das einzige Product ist, das einen UnitPrice von 9 hat.
Die zweite Spalte gibt Betacab zurück, da es der einzige Customer ist, der ein Product namens DD verkauft.
Die dritte Spalte gibt 2 zurück, da dies der einzige Wert von UnitSales ist, bei dem UnitPrice = 20.
Die vierte Spalte gibt NULL zurück, da es kein einzelnes Ergebnis gibt, bei dem UnitPrice = 15. In diesem Datensatz gibt es zwei Werte von UnitSales, bei denen UnitPrice =15.
Beispiel – Szenario für „Only“
Übersicht
Ein Datensatz enthält Produktumsätze nach Zeitraum. Das Unternehmen möchte feststellen, ob ein Produkt in einem einzigen Geschäft oder in mehreren Geschäften verkauft wird.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Datentabelle namens Example geladen wird
Die folgenden Felder in der Datentabelle:
Date
RecordID
StoreProduct
Sales
Ladeskript
Example:
Load * inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:
StoreProduct
Erstellen Sie die folgenden Kennzahlen:
=Only(Store), um das eindeutige Geschäft zu berechnen, in dem das Produkt verkauft wird.
=If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store'), um zu berechnen, ob das Produkt in einem einzigen Geschäft oder in mehreren Geschäften verkauft wird.
=Sum(Sales), um den gesamten Produktumsatz zu berechnen.
Die Ergebnisse zeigen, dass Apples und Bananas nur in einem einzigen Geschäft verkauft werden, während Carrots in mehreren Geschäften verkauft wird.
Beispiel – Erweitertes Szenario zur Erstellung einer Tabelle mit Datensätzen für einen einzelnen Monat
Übersicht
In diesem Beispiel wird die Funktion Only verwendet, um eine zeilenweise Tabelle der Datensätze für einen einzelnen Monat anzuzeigen. Um dies zu erreichen, wird Aggregierung mit Auswahlformeln verwendet, um den gewünschten Satz Datensätze auszuwählen. Für die Aggregierung mit Auswahlformeln ist mindestens eine Kennzahl erforderlich. Da wir den Datensatz jedoch nicht wirklich aggregieren müssen, können wir effektiv die Aggregierungsfunktion Only verwenden, um den Umfang der Aggregierung mit Auswahlformeln abzudecken.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Datentabelle namens Example geladen wird
Eine vorangehende load-Anweisung, die das Feld MonthYear aus dem Feld Date ableitet, indem sie mit der Funktion MonthStart den Tag des Monats abschneidet und eine Datumsdarstellung des 1. eines jeden Monats zurückgibt. Dieses Ergebnis wird an die Funktion Date übergeben, um das Anzeigeformat auf MMM YY zu setzen, zum Beispiel Jan 24.
Die folgenden Felder in der Datentabelle:
Date
RecordID
StoreProduct
Sales
Store
Ladeskript
Example:
Load
*,
date(MonthStart (Date),'MMM YY') AS MonthYear
inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
MonthYear
RecordID
Date
StoreProduct
Store
Erstellen Sie die folgenden Kennzahlen:
=Only({$<MonthYear={'$(=MaxString(MonthYear))'}>} Sales), um den Wert von Sales auszuwerten und nur diejenigen zurückzugeben, bei denen MonthYear der letzte (jüngste) verfügbare MonthYear ist, basierend auf den aktuellen Auswahlen in der Tabelle. Die Dollarzeichen-Erweiterung ($) führt eine Inline-Berechnung mit der MaxString-Funktion $(=MaxString(MonthYear)) durch, die die Textdarstellung des letzten Wertes für MonthYear zurückgibt.
InformationshinweisDer Versuch, MonthYear anhand der numerischen Darstellung zu filtern, zum Beispiel mit der Max -Funktion Max(MonthYear), würde kein Ergebnis liefern. Die Aggregierung mit Auswahlformeln wendet Filterauswahlen an, die nur auf der Textdarstellung eines beliebigen dualen Datentyps basieren; eines Datentyps mit einer numerischen und einer Textdarstellung wie Date.
Die Ausgabe der Funktion Only erzeugt eine Tabelle mit Datensätzen, die standardmäßig den Umsatzwert für den neuesten oder jüngsten MonthYear darstellt, der in den Daten verfügbar ist. Wenn Sie in der Spalte MonthYear einen früheren Monat auswählen, z. B. Feb 24, wird der letzte Umsatzwert für diesen Monat angezeigt.
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!