# Only - funzione per grafici

Only() restituisce un valore se esiste esclusivamente un unico risultato possibile dai dati aggregati. Ad esempio, la ricerca dell'unico prodotto con prezzo unitario = 9 restituirà NULL se più di un prodotto ha un prezzo unitario di 9.

Sintassi:

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

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr | L'espressione o il campo contenente i dati da misurare. |
| SetExpression | Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. È possibile definire una serie di record alternativa mediante un'espressione Set Analysis. |
| TOTAL | Se la parola TOTAL viene riportata prima degli argomenti della funzione, il calcolo verrà effettuato su tutti i valori possibili dati dalle selezioni correnti e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico.<br><br>Utilizzando TOTAL [&lt;fld {.fld}&gt;], dove il qualificatore TOTAL è seguito da un elenco di uno o più nomi di campo come sottogruppo delle variabili di dimensione del grafico, si crea un sottogruppo di tutti i valori possibili.<br><br>[Definizione dell'ambito di aggregazione](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Nota di suggerimentoUtilizzare Only() quando si desidera un risultato NULL se nei dati campione sono presenti più valori possibili.

Esempio: espressione del grafico

| Esempio | Risultato |
| --- | --- |
| `Only(Category)` | Visualizza il valore `Category` a condizione che sia univoco nel contesto. |

## Esempio: principi fondamentali della funzione Only

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

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella con le seguenti misure:

* `=Only({<UnitPrice={9}>} Product)`, per calcolare l'unico valore `Product` con un `UnitPrice` uguale a `9`.

* `=Only({<Product={DD}>} Customer)`, per calcolare l'unico `Customer` che vende un `Product` chiamato `DD`.

* `=Only({<UnitPrice={20}>} UnitSales)`, per calcolare il numero di `UnitSales` in cui `UnitPrice` è `20`.

* `=Only({<UnitPrice={15}>} UnitSales)`, per calcolare i valori di `UnitSales`, dove `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 | - |

In questo esempio, fare quanto segue:

* La prima colonna restituisce il valore `BB` perché questo è l'unico `Product` che ha un `UnitPrice` uguale a `9`.

* La seconda colonna restituisce `Betacab`, perché è l'unico `Customer` a vendere un `Product` denominato `DD`.

* La terza colonna restituisce il valore `2` perché questo è l'unico valore di `UnitSales` in cui `UnitPrice = 20`.

* La quarta colonna restituisce `NULL` perché non esiste un solo risultato in cui `UnitPrice = 15`. In questo set di dati, ci sono due valori di `UnitSales` in cui `UnitPrice =15`.

## Esempio: scenario per la funzione Only

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati sulle vendite di prodotti suddivisi per il periodo. L'azienda vuole determinare se un prodotto è venduto in un singolo negozio o in più negozi.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `Date`

  * `RecordID`

  * `StoreProduct`

  * `Sales`

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* `StoreProduct`

Creare le seguenti misure:

* `=Only(Store)`, per calcolare l'unico negozio in cui viene venduto il prodotto.

* `=If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store')`, per calcolare se il prodotto è venduto in un singolo negozio o in più negozi.

* `=Sum(Sales)`, per calcolare le vendite totali per il prodotto.

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 |

I risultati indicano che i prodotti `Apples` e `Bananas` sono venduti in un solo negozio, mentre il prodotto `Carrots` è venduto in più negozi.

## Esempio: scenario avanzato per creare una tabella di record di un solo mese

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

#### Espressione del grafico

Panoramica

Questo esempio utilizza la funzione `Only` per mostrare una tabella di record riga per riga per un singolo mese. A tal fine, si utilizza l'analisi dei set per individuare il set di record desiderato. L'analisi dei set richiede almeno una misura, anche se, dal momento che non abbiamo effettivamente bisogno di aggregare il set di record, è possibile utilizzare efficacemente la funzione di aggregazione `Only` per ospitare l'ambito dell'analisi dei set.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* Un'istruzione LOAD precedente che deriva il campo `MonthYear` dal campo `Date` troncando il giorno del mese, utilizzando la funzione `MonthStart`, e restituendo una rappresentazione della data del 1° di ogni mese. Questo risultato viene fornito alla funzione `Date` per impostare il formato di visualizzazione su `MMM YY`, ad esempio, `Jan 24`.

* I seguenti campi nella tabella dati:

  * `Date`

  * `RecordID`

  * `StoreProduct`

  * `Sales`

  * `Store`

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `MonthYear`

* `RecordID`

* `Date`

* `StoreProduct`

* `Store`

Creare le seguenti misure:

* `=Only({$<MonthYear={'$(=MaxString(MonthYear))'}>} Sales)`, per valutare il valore `Sales` e restituire solo quelli in cui `MonthYear` è l'ultimo (il più recente) `MonthYear` disponibile, in base alle selezioni correnti nella tabella. L'espansione con il simbolo del dollaro ($) esegue un calcolo in linea utilizzando la funzione `MaxString`, `$(=MaxString(MonthYear))`, che restituisce la rappresentazione testuale del valore `MonthYear` più recente.

Nota informaticaIl tentativo di filtrare `MonthYear` in base alla rappresentazione numerica, ad esempio utilizzando la funzione ` Max  `, `Max(MonthYear)`, non produrrebbe alcun risultato. L'analisi dei set applica selezioni dei filtri basate solo sulla rappresentazione testuale di qualsiasi tipo di dati doppi; un tipo di dati con una rappresentazione numerica e testuale, come ad esempio `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 |

L'output della funzione `Only` genera una tabella di record che presenta per impostazione predefinita il valore di vendita dell'ultimo, o più recente, `MonthYear` disponibile nei dati. Se si seleziona un mese precedente dalla colonna `MonthYear`, ad esempio `Feb 24`, apparirà il valore delle vendite più recente per quel mese.

## Ulteriori informazioni

* [Analisi di gruppo](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Definizione dell'ambito di aggregazione](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)