# ColumnNo — funkcja wykresu

Funkcja ColumnNo() zwraca numer bieżącej kolumny w bieżącym segmencie wierszy tabeli przestawnej. Pierwsza kolumna ma numer 1.

Składnia:

ColumnNo([total])

Argumenty

| Argument | Opis |
| --- | --- |
| TOTAL | Jeśli tabela jest jednowymiarowa lub jako argument zostanie podany kwalifikator TOTAL, bieżący segment kolumny jest zawsze równy całej kolumnie.<br><br>[Określenie zakresu agregacji](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Jeśli tabela przestawna zawiera wiele wymiarów poziomych, wówczas bieżący segment wiersza będzie zawierać tylko kolumny z takimi samymi wartościami co bieżąca kolumna we wszystkich wierszach wymiaru, z wyjątkiem wiersza przedstawiającego ostatni wymiar poziomy w kolejności sortowania między polami. Kolejność sortowania między polami dla wymiarów poziomych w tabelach przestawnych jest zdefiniowana przez kolejność wymiarów od góry do dołu..

InformacjaSortowanie według wartości Y w wykresach albo sortowanie według kolumn wyrażeń w tabelach jest niedozwolone, gdy w dowolnym z wyrażeń wykresu stosowana jest ta funkcja wykresu. W takiej sytuacji te opcje sortowania są automatycznie wyłączone. Kiedy używasz tej funkcji wykresu w wizualizacji albo tabeli, sortowanie wizualizacji zostanie przywrócone do sortowania danych wejściowych tej funkcji.

Przykład: wyrażenie wykresu

| Przykład | Wynik |
| --- | --- |
| ` IF( ColumnNo()=1, 0, Sum(Sales) / Before(Sum(Sales)))  ` | Jeśli `ColumnNo` jest równe 1, wykres zwróci zero. W przeciwnym razie zwróci wynik `Sum(Sales) / Before(Sum(Sales)`. W tym przykładzie wykres zwróci wartości od kolumny 2, podczas gdy kolumna 1 zwróci zero. |

## Przykład — podstawy ColumnNo

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

#### Wyrażenie wykresu

Przegląd

Zestaw danych zawiera kwartalne dane dotyczące sprzedaży. W tym przykładzie mnoży się wartość sprzedaży dla każdego okresu przez numer kolumny okresu.

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:

  * `Period`

  * `Sales`

Skrypt ładowania

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

Wyniki

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

* `Period`

Utwórz następującą miarę:

* `=Sum(Sales) * ColumnNo()` w celu obliczenia sumy wartości sprzedaży pomnożonej przez numer kolumny, którym w tym przykładzie jest kwartał.

Tabela wynikowa

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

Suma wartości sprzedaży dla każdego kwartału jest mnożona przez wynik funkcji `ColumnNo`. Na przykład wartość sprzedaży w `Q4` wynosi 4000, a wynik funkcji `ColumnNo` zwraca `4`, ponieważ `Q4` jest czwartą kolumną. Dlatego wyrażenie miary mnoży `4000` przez `4` i zwraca `16000`.

## Przykład — zastosowanie ColumnNo

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

#### Wyrażenie wykresu

Przegląd

Zestaw danych zawierający kwartalne wyniki sprzedaży. Firma chce zwiększyć dane sprzedaży dla Q1 i Q3 (kolumny z liczbami nieparzystymi) o 5% i zwiększyć sprzedaż dla pozostałych kolumn (Q2 i Q4) o 10%.

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:

  * `Period`

  * `Sales`

Skrypt ładowania

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

Wyniki

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

* `Period`

Utwórz następujące miary:

* `=Sum(Sales)` w celu obliczenia sumy sprzedaży.

* `=If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)`, aby zwiększyć kwoty sprzedaży w kolumnach o numerach nieparzystych o 5%, a w pozostałych kolumnach o 10%.

Tabela wynikowa

| Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | Jeżeli(Nieparzysta(NumerKolumny()), Kwota \* 1.05, Kwota \* 1.10) | Sum(Sales) | Jeżeli(Nieparzysta(NumerKolumny()), Kwota \* 1.05, Kwota \* 1.10) | Sum(Sales) | Jeżeli(Nieparzysta(NumerKolumny()), Kwota \* 1.05, Kwota \* 1.10) | Sum(Sales) | Jeżeli(Nieparzysta(NumerKolumny()), Kwota \* 1.05, Kwota \* 1.10) |
| 1000 | 1050 | 2000 | 2200 | 3000 | 3150 | 4000 | 4400 |

Wyniki pokazują, że wartości sprzedaży dla kolumn o numerach nieparzystych, 1 i 3 (`Q1` i `Q3`), wzrosły o 5%, podczas gdy w pozostałych kolumnach o numerach parzystych, 2 i 4 (`Q2` i `Q4`), wzrosły o 10%.

## Przykład — zaawansowane zastosowanie ColumnNo

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

#### Wyrażenie wykresu

Przegląd

W tym przykładzie wykorzystano ten sam zestaw danych co w poprzednim zastosowaniu, aby przedstawić skumulowaną sumę wartości w każdym okresie.

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:

  * `Period`

  * `Sales`

Skrypt ładowania

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

Wyniki

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

* `Period`

Utwórz następującą miarę:

* `=RangeSum(Before(Sum(Sales), 0, ColumnNo()))` w celu obliczenia sumy skumulowanej.

Tabela wynikowa

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

Ten przykład pokazuje, jak używać funkcji `ColumnNo` do generowania sumy bieżącej. Poniżej wyjaśniono więcej szczegółów na temat wyrażenia miary: `RangeSum(Before(Sum(Sales), 0, ColumnNo()))`.

`Sum(Sales)`: oblicza sumę sprzedaży dla bieżącej komórki w tabeli przestawnej.

`Before(Sum(Sales), 0, ColumnNo())`: funkcja `Before` pobiera wartości z poprzednich kolumn w tabeli przestawnej.

* Argument `Sum(Sales)` zapewnia, że funkcja pobiera zsumowane `Sales` dla poprzednich komórek.

* Wartość argumentu offset `0` określa przesunięcie dla kolumny (pozostając w bieżącym segmencie wiersza bieżącej kolumny).

* `ColumnNo()` określa, o ile kolumn należy się cofnąć podczas pobierania danych. Dynamicznie reprezentuje pozycję bieżącej kolumny (na przykład dla kolumny 3 `ColumnNo()` równa się `3`, więc funkcja uwzględnia trzy kolumny wstecz).

`RangeSum()`: funkcja `RangeSum` oblicza sumę zakresu podanych wartości. Obsługuje wartości null, traktując je jako zero. W tym wyrażeniu `RangeSum` zasadniczo generuje sumę skumulowaną, sumując wszystkie poprzednie wartości `Sales` pobrane przez funkcję `Before()`, a także sprzedaż bieżącej komórki.