# ColumnNo - diagramfunctie

ColumnNo() retourneert het nummer van de huidige kolom in het huidige rijsegment in een draaitabel. De eerste kolom is nummer 1.

Syntaxis:

ColumnNo([total])

Argumenten

| Argument | Beschrijving |
| --- | --- |
| TOTAL | Als de tabel eendimensionaal is of als de kwalificatie TOTAL wordt gebruikt als argument, is het huidige kolomsegment altijd gelijk aan de hele kolom.<br><br>[Het aggregatiebereik definiëren](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Als de draaitabel meerdere horizontale dimensies heeft, omvat het huidige rijsegment alleen kolommen met dezelfde waarden als de huidige kolom in alle dimensierijen, met uitzondering van de rij waarin de laatste horizontale dimensie wordt weergegeven in de onderlinge sorteervolgorde van de velden. De sorteervolgorde tussen velden voor horizontale dimensies in draaitabellen wordt simpelweg gedefinieerd door de volgorde van de dimensies van boven naar onder.

InformatieHet is niet toegestaan te sorteren op y-waarden in grafieken of op uitdrukkingskolommen in tabellen als deze diagramfunctie wordt gebruikt in een van de uitdrukkingen van de grafiek. Deze sorteeropties worden daarom automatisch uitgeschakeld. Als u deze diagramfunctie gebruikt in een visualisatie of tabel, wordt de sortering van de visualisatie teruggezet naar de gesorteerde invoer van deze functie.

Voorbeeld: diagramuitdrukking

| Voorbeeld | Resultaat |
| --- | --- |
| ` IF( ColumnNo()=1, 0, Sum(Sales) / Before(Sum(Sales)))  ` | Wanneer de `ColumnNo` gelijk is aan 1, zal het diagram null retourneren. Anders wordt het resultaat van `Sum(Sales) / Before(Sum(Sales)` geretourneerd. In dit voorbeeld retourneert het diagram waarden vanaf kolom 2, terwijl kolom 1 nul retourneert. |

## Voorbeeld - Basisprincipes voor ColumnNo

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

#### Diagramuitdrukking

Overzicht

Een gegevensverzameling bevat verkoopgegevens per kwartaal. Dit voorbeeld vermenigvuldigt de verkoopwaarde voor elke periode met het kolomnummer van de periode.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `Period`

  * `Sales`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe draaitabel en voeg dit veld toe als een kolomdimensie:

* `Period`

Maak de volgende meting:

* `=Sum(Sales) * ColumnNo()`, om de som van de verkoopwaarden te berekenen, vermenigvuldigd met het kolomnummer, dat in dit voorbeeld het kwartaal is.

Resultatentabel

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

De som van de verkoopwaarde voor elk kwartaal wordt vermenigvuldigd met de uitvoer van de functie `ColumnNo`. De waarde van de verkoop in `Q4` is bijvoorbeeld 4000 en de uitvoer van de functie `ColumnNo` retourneert `4` omdat `Q4` de vierde kolom is. Daarom vermenigvuldigt de metinguitdrukking `4000` met `4` en retourneert `16000`.

## Voorbeeld 5 – Scenario met ColumnNo

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

#### Diagramuitdrukking

Overzicht

Een gegevensverzameling bevat verkoopcijfers van elk kwartaal. Een bedrijf wil de verkoopgegevens voor Q1 en Q3 (de kolommen met oneven nummers) met 5% verhogen en de verkoop voor de overige kolommen (Q2 en Q4) met 10% verhogen.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `Period`

  * `Sales`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe draaitabel en voeg dit veld toe als een kolomdimensie:

* `Period`

Maak de volgende metingen:

* `=Sum(Sales)`, om de som van verkoop te berekenen.

* `=If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)`, om de verkoopbedragen voor de kolommen met oneven nummers met 5% te verhogen en de overige kolommen met 10%.

Resultatentabel

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

De resultaten laten zien dat de verkoopwaarden voor de oneven genummerde kolommen, 1 en 3 (`Q1` en `Q3`), met 5% zijn gestegen, terwijl de overige even genummerde kolommen, 2 en 4 (`Q2` en `Q4`), met 10% zijn gestegen.

## Voorbeeld 5 – Geavanceerd scenario met ColumnNo

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

#### Diagramuitdrukking

Overzicht

Dit voorbeeld gebruikt dezelfde gegevensverzameling als het vorige scenario om het cumulatieve totaal voor de waarden in elke periode weer te geven.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `Period`

  * `Sales`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe draaitabel en voeg dit veld toe als een kolomdimensie:

* `Period`

Maak de volgende meting:

* `=RangeSum(Before(Sum(Sales), 0, ColumnNo()))`, om het cumulatieve totaal te berekenen.

Resultatentabel

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

Dit voorbeeld toont hoe u de functie `ColumnNo` kunt gebruiken om een lopend totaal te genereren. De volgende uitleg geeft meer details over de metinguitdrukking: `RangeSum(Before(Sum(Sales), 0, ColumnNo()))`.

`Sum(Sales)`: berekent de som van de verkopen voor de huidige cel in de draaitabel.

`Before(Sum(Sales), 0, ColumnNo())`: de functie `Before` haalt waarden op uit de voorgaande kolommen in de draaitabel.

* Het argument `Sum(Sales)` zorgt ervoor dat de functie de getotaliseerde `Sales` voor de voorgaande cellen ophaalt.

* De offsetwaarde van `0` specificeert de offset voor de kolom (die overblijft in het huidige rijsegment van de huidige kolom).

* `ColumnNo()` bepaalt hoeveel kolommen terug moeten gaan bij het ophalen van de gegevens. Het geeft dynamisch de positie van de huidige kolom weer (bijvoorbeeld, voor kolom 3 is `ColumnNo()` gelijk aan `3`, dus de functie kijkt terug over drie kolommen).

`RangeSum()`: de functie `RangeSum` berekent de som van het bereik van de opgegeven waarden. Het behandelt nullwaarden door ze als nul te behandelen. In deze uitdrukking genereert `RangeSum` effectief een cumulatief totaal door alle voorgaande `Sales` waarden die zijn opgehaald door de functie `Before()` bij elkaar op te tellen, evenals de verkoop van de huidige cel.