# Only - Diagrammfunktion

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.

Syntax:

Only([{SetExpression}] [TOTAL [&lt;fld {,fld}&gt;]] expr)

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| expr | 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.<br><br>Mit TOTAL [&lt;fld {.fld}&gt;], 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.<br><br>[Definieren des Aggregierungsbereichs](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

TipphinweisVerwenden Sie Only(), wenn Sie in den Beispieldaten bei mehreren möglichen Werten ein NULL-Ergebnis wünschen.

Beispiel: Diagrammformel

| Beispiel | Ergebnis |
| --- | --- |
| `Only(Category)` | Zeigt die `Category` an, solange sie im Kontext eindeutig ist. |

## Beispiel – Grundlegendes zu „Only“

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/only.htm)

#### Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

Ladeskript

```
Example:
LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD||25
Canutility|AA|8|15
Canutility|CC||19
] (delimiter is '|');
```

Ergebnisse

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({&lt;UnitPrice={9}&gt;} Product) | Only({&lt;Product={DD}&gt;} Customer) | Only({&lt;UnitPrice={20}&gt;} UnitSales) | Only({&lt;UnitPrice={15}&gt;} 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“

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/only.htm)

#### Diagrammformel

Ü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 einen neuen Abschnitt 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.

Results table

| StoreProduct | Only(Store) | If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store') | Sum(Sales) |
| --- | --- | --- | --- |
| Apple | A | Single Store | 330 |
| Banana | B | Single Store | 255 |
| Carrot | - | Multiple Stores | 165 |

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/only.htm)

#### Diagrammformel

Ü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 einen neuen Abschnitt 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`.

Results table

| MonthYear | RecordID | Date | StoreProduct | Only({$&lt;MonthYear={‘$(=MaxString(MonthYear))’}&gt;} Sales) |
| --- | --- | --- | --- | --- |
| Mar 24 | 7 | 2024-03-10 | Apple | 110 |
| Mar 24 | 8 | 2024-03-22 | Banana | 85 |
| Mar 24 | 9 | 2024-03-31 | Carrot | 55 |

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.

## Weitere Informationen

* [Aggregierung mit Auswahlformeln](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Definieren des Aggregierungsbereichs](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)