# ColumnNo - funzione per grafici

ColumnNo() restituisce il numero della colonna attuale all'interno del segmento di riga attuale in una tabella pivot. La prima colonna è la numero 1.

Sintassi:

ColumnNo([total])

Argomenti

| Argomento | Descrizione |
| --- | --- |
| TOTAL | Se la tabella è unidimensionale o se è utilizzato il qualificatore TOTAL come argomento, il segmento colonna attuale sarà sempre uguale all'intera colonna.<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) |

Se una tabella pivot include più dimensioni orizzontali, il segmento della riga attuale includerà solo le colonne con gli stessi valori della colonna attuale in tutte le righe della dimensione, tranne per la riga che visualizza l'ultima dimensione orizzontale dell'ordinamento tra campi. La sequenza di ordinamento tra campi per le dimensioni orizzontali nelle tabelle pivot è definita semplicemente dall'ordine delle dimensioni dall'alto verso il basso.

Nota informaticaL'ordinamento sui valori y nei grafici o l'ordinamento per colonne di espressione nelle tabelle non è consentito quando si utilizza questa funzione di grafico in una qualsiasi delle espressioni del grafico. Queste alternative di ordinamento verranno perciò disattivate automaticamente. Quando si utilizza questa funzione di grafico in una visualizzazione o in una tabella, l'ordinamento della visualizzazione torna all'ordinamento inserito in questa funzione.

Esempio: espressione del grafico

| Esempio | Risultato |
| --- | --- |
| ` IF( ColumnNo()=1, 0, Sum(Sales) / Before(Sum(Sales)))  ` | Se `ColumnNo` è uguale a 1, il grafico restituirà zero. Altrimenti, restituirà il risultato `Sum(Sales) / Before(Sum(Sales)`. In questo esempio, il grafico restituirà i valori dalla colonna 2 in poi, mentre la colonna 1 restituirà zero. |

## Esempio: principi fondamentali della funzione ColumnNo

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati di vendita trimestrali. Questo esempio moltiplica il valore delle vendite per ogni periodo per il numero di colonna di quel periodo.

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:

  * `Period`

  * `Sales`

Script di caricamento

```
Example:
Load * inline [
Period, Sales
Q1, 1000
Q2, 2000
Q3, 3000
Q4, 4000
];
```

Risultati

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

* `Period`

Creare la seguente misura:

* `=Sum(Sales) * ColumnNo()`, per calcolare la somma dei valori di vendita moltiplicati per il numero della colonna, che in questo esempio è il trimestre.

Tabella dei risultati

| Q1 | Q2 | Q3 | Q4 |
| --- | --- | --- | --- |
| 1000 | 4000 | 9000 | 16000 |

La somma dei valori di vendita per ogni trimestre viene moltiplicata per l'output della funzione `ColumnNo`. Ad esempio, il valore delle vendite in `Q4` è 4000, e l'output della funzione `ColumnNo` restituisce `4` perché `Q4` è la quarta colonna. Pertanto, l'espressione di misura moltiplica `4000` per `4` e restituisce `16000`.

## Esempio: scenario per la funzione ColumnNo

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati di vendita trimestrali. Un'azienda vuole aumentare i dati di vendita per T1 e T3 (le colonne dispari) del 5% e aumentare le vendite delle colonne rimanenti (T2 e T4) del 10%.

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:

  * `Period`

  * `Sales`

Script di caricamento

```
Example:
Load * inline [
Period, Sales
Q1, 1000
Q2, 2000
Q3, 3000
Q4, 4000
];
```

Risultati

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

* `Period`

Creare le seguenti misure:

* `=Sum(Sales)`, per calcolare la somma delle vendite.

* `=If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)`, per aumentare gli importi delle vendite per le colonne dispari del 5% e per le colonne rimanenti del 10%.

Tabella dei risultati

| Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | If(Odd(ColumnNo()), Amount \* 1.05, Amount \* 1.10) | Sum(Sales) | If(Odd(ColumnNo()), Amount \* 1.05, Amount \* 1.10) | Sum(Sales) | If(Odd(ColumnNo()), Amount \* 1.05, Amount \* 1.10) | Sum(Sales) | If(Odd(ColumnNo()), Amount \* 1.05, Amount \* 1.10) |
| 1000 | 1050 | 2000 | 2200 | 3000 | 3150 | 4000 | 4400 |

I risultati mostrano che i valori di vendita delle colonne dispari, 1 e 3 (`Q1` e `Q3`), sono aumentati del 5%, mentre le restanti colonne pari, 2 e 4 (`Q2` e `Q4`), sono aumentate del 10%.

## Esempio: scenario avanzato per la funzione ColumnNo

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

#### Espressione del grafico

Panoramica

Questo esempio utilizza lo stesso set di dati dello scenario precedente per presentare il totale cumulativo per i valori in ogni periodo.

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:

  * `Period`

  * `Sales`

Script di caricamento

```
Example:
Load * inline [
Period, Sales
Q1, 1000
Q2, 2000
Q3, 3000
Q4, 4000
];
```

Risultati

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

* `Period`

Creare la seguente misura:

* `=RangeSum(Before(Sum(Sales), 0, ColumnNo()))`, per calcolare il totale cumulativo.

Tabella dei risultati

| Q1 | Q2 | Q3 | Q4 |
| --- | --- | --- | --- |
| 1000 | 3000 | 6000 | 10000 |

Questo esempio mostra come utilizzare la funzione `ColumnNo` per generare un totale parziale. La spiegazione che segue fornisce maggiori dettagli sull'espressione di misura: `RangeSum(Before(Sum(Sales), 0, ColumnNo()))`.

`Sum(Sales)`: calcola la somma delle vendite per la cella corrente nella tabella pivot.

`Before(Sum(Sales), 0, ColumnNo())`: la funzione `Before` recupera i valori dalle colonne precedenti nella tabella pivot.

* L'argomento `Sum(Sales)` assicura che la funzione recuperi la somma di `Sales` per le celle precedenti.

* Il valore di offset di `0` specifica l'offset della colonna (rimanente nel segmento di riga corrente della colonna corrente).

* `ColumnNo()` determina il numero di colonne da recuperare quando si recuperano i dati. Rappresenta in modo dinamico la posizione della colonna corrente (ad esempio, per la colonna 3, `ColumnNo()` equivale a `3`, quindi la funzione valuta le tre colonne precedenti).

`RangeSum()`: la funzione `RangeSum` calcola la somma dell'intervallo di valori forniti. Gestisce i valori null trattandoli come zero. In questa espressione, `RangeSum` genera effettivamente un totale cumulativo sommando tutti i valori `Sales` precedenti recuperati dalla funzione `Before()`, oltre alle vendite della cella corrente.