# Only — funkcja wykresu

Funkcja Only() zwraca wartość tylko wtedy, gdy z agregowanych danych możliwy jest dokładnie jeden wynik. Na przykład wyrażenie szukające jedynego produktu o cenie jednostkowej równej 9 zwróci NULL, jeśli istnieje więcej niż jeden produkt o cenie jednostkowej równej 9.

Składnia:

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

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| expr | Wyrażenie lub pole zawierające mierzone dane. |
| SetExpression | Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
| TOTAL | Jeśli słowo TOTAL występuje przed argumentami funkcji, wówczas obliczenie jest wykonywane względem wszystkich możliwych wartości z uwzględnieniem bieżących selekcji, nie tylko tych należących do bieżącej wartości wymiaru, to znaczy z pominięciem wymiarów wykresu.<br><br>Korzystając z polecenia TOTAL [&lt;fld {.fld}&gt;], gdzie po kwalifikatorze TOTAL podana jest lista nazw pól stanowiących podzbiór zmiennych wymiarów wykresu, można utworzyć podzbiór wszystkich możliwych wartości.<br><br>[Określenie zakresu agregacji](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

WskazówkaZ funkcji Only() należy skorzystać, jeśli w przypadku występowania w danych z próby wielu tych samych wartości ma zostać zwrócona wartość NULL.

Przykład: wyrażenie wykresu

| Przykład | Wynik |
| --- | --- |
| `Only(Category)` | Wyświetla adres `Category`, o ile jest on unikatowy w danym kontekście. |

## Przykład — podstawy Only

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

#### Wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

Skrypt ładowania

```
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 '|');
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę z następującymi miarami:

* `=Only({<UnitPrice={9}>} Product)` w celu obliczenia jedynego `Product`, który ma `UnitPrice` o wartości `9`.

* `=Only({<Product={DD}>} Customer)` w celu obliczenia jedynego `Customer` sprzedającego `Product` o nazwie `DD`.

* `=Only({<UnitPrice={20}>} UnitSales)` w celu obliczenia liczby `UnitSales`, gdzie `UnitPrice` wynosi `20`.

* `=Only({<UnitPrice={15}>} UnitSales)` w celu obliczenia wartości `UnitSales`, gdzie `UnitPrice = 15`.

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 | - |

W tym przykładzie należy zwrócić uwagę na następujące elementy:

* Pierwsza kolumna zwraca wartość `BB`, ponieważ jest to jedyny `Product`, który ma wartość `UnitPrice` równą `9`.

* Druga kolumna zwraca `Betacab`, ponieważ jest to jedyny `Customer` sprzedający `Product` o nazwie `DD`.

* Trzecia kolumna zwraca wartość `2`, ponieważ jest to jedyna wartość `UnitSales`, w której przypadku `UnitPrice = 20`.

* Czwarta kolumna zwraca `NULL`, ponieważ nie istnieje pojedynczy wynik, w którym `UnitPrice = 15`. W tym zestawie danych istnieją dwie wartości `UnitSales`, w których przypadku `UnitPrice =15`.

## Przykład — zastosowanie Only

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

#### Wyrażenie wykresu

Przegląd

Zestaw danych zawiera dane dotyczące sprzedaży produktów w poszczególnych okresach. Firma chce ustalić, czy produkt jest sprzedawany w jednym sklepie, czy w wielu sklepach.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `Date`

  * `RecordID`

  * `StoreProduct`

  * `Sales`

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

* `StoreProduct`

Utwórz następujące miary:

* `=Only(Store)` w celu obliczenia unikatowego sklepu, w którym jest sprzedawany produkt.

* `=If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store')` w celu obliczenia, czy produkt jest sprzedawany w jednym sklepie, czy w wielu sklepach.

* `=Sum(Sales)` w celu obliczenia całkowitej sprzedaży produktu.

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 |

Wyniki wskazują, że `Apples` i `Bananas` są sprzedawane tylko w jednym sklepie, podczas gdy `Carrots` są sprzedawane w wielu sklepach.

## Przykład — Zaawansowany scenariusz tworzenia jednomiesięcznej tabeli rekordów

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

#### Wyrażenie wykresu

Przegląd

W tym przykładzie użyto funkcji `Only`, aby wyświetlić tabelę rekordów wiersz po wierszu dla jednego miesiąca. Aby to osiągnąć, analiza zestawów jest wykorzystywana do określenia pożądanego zestawu rekordów. Analiza zestawu wymaga co najmniej jednej miary, chociaż ponieważ w rzeczywistości nie musimy agregować zestawu rekordów, możemy skutecznie wykorzystać funkcję agregacji `Only` do hostowania zakresu analizy zestawu.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Poprzedzająca instrukcja load, która wyprowadza pole `MonthYear` z pola `Date`, obcinając dzień miesiąca za pomocą funkcji `MonthStart` i zwracając reprezentację daty pierwszego dnia każdego miesiąca. Wynik ten jest przekazywany do funkcji `Date` w celu ustawienia formatu wyświetlania na `MMM YY`, na przykład `Jan 24`.

* Tabela zawiera następujące pola:

  * `Date`

  * `RecordID`

  * `StoreProduct`

  * `Sales`

  * `Store`

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `MonthYear`

* `RecordID`

* `Date`

* `StoreProduct`

* `Store`

Utwórz następujące miary:

* `=Only({$<MonthYear={'$(=MaxString(MonthYear))'}>} Sales)`, aby ocenić wartość `Sales` i zwrócić tylko te, w których `MonthYear` jest najnowszym dostępnym `MonthYear` na podstawie bieżących wyborów w tabeli. Rozszerzenie przez znak dolara ($) wykonuje wbudowane obliczenia przy użyciu funkcji `MaxString`, `$(=MaxString(MonthYear))`, która zwraca tekstową reprezentację ostatniej wartości `MonthYear`.

InformacjaPróba filtrowania `MonthYear` na podstawie reprezentacji liczbowej, na przykład przy użyciu funkcji ` Max  `, `Max(MonthYear)`, nie przyniosłaby żadnych rezultatów. Analiza zestawu danych stosuje wybór filtrów oparty wyłącznie na tekstowej reprezentacji dowolnego podwójnego typu danych; typu danych z reprezentacją numeryczną i tekstową, takiego jak `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 |

Dane wyjściowe funkcji `Only` tworzą tabelę rekordów, która domyślnie przedstawia wartość sprzedaży dla najnowszej lub ostatniego `MonthYear`, która jest dostępna w danych. W przypadku wybrania wcześniejszego miesiąca z kolumny `MonthYear`, np. `Feb 24`, wyświetlona zostanie najnowsza wartość sprzedaży dla tego miesiąca.

## Dowiedz się więcej

* [Analiza zestawów](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Określenie zakresu agregacji](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)