# ColumnNo - función de gráfico

ColumnNo() devuelve el número de la columna actual dentro del segmento de fila actual en una tabla pivotante. La primera columna es la número 1.

Sintaxis:

ColumnNo([total])

Argumentos

| Argumento | Descripción |
| --- | --- |
| TOTAL | Si la tabla es unidimensional o si el cualificador TOTAL se utiliza como argumento, el segmento de columna actual es siempre igual a la columna completa.<br><br>[Definir el ámbito de agregación](https://help.qlik.com/es-ES/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Si la tabla dinámica tiene múltiples dimensiones horizontales, el segmento de fila actual incluirá solo columnas con los mismos valores que la columna actual en todas las filas de dimensión excepto la fila que muestra la última dimensión horizontal del orden de campo. El criterio de ordenación entre campos para dimensiones horizontales en tablas pivotantes viene definido simplemente por el orden de las dimensiones de arriba a abajo..

Nota informativaNo se permite ordenar por valores Y en gráficos ni ordenar por columnas de expresión en tablas cuando esta función de gráfico se usa en cualquiera de las expresiones del gráfico. Estas alternativas de ordenación están por lo tanto automáticamente deshabilitadas. Cuando utiliza esta función de gráfico en una visualización o tabla, el orden de la visualización volverá a la entrada ordenada de esta función.

Ejemplo: Expresión de gráfico

| Ejemplo | Resultado |
| --- | --- |
| ` IF( ColumnNo()=1, 0, Sum(Sales) / Before(Sum(Sales)))  ` | Si `ColumnNo` es igual a 1, el gráfico devolverá cero. En caso contrario, devolverá el resultado de `Sum(Sales) / Before(Sum(Sales)`. En este ejemplo, el gráfico devolverá valores a partir de la columna 2, mientras que la columna 1 devolverá cero. |

## Ejemplo: fundamentos de ColumnNo

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

#### Expresión de gráfico

Descripción

Un conjunto de datos contiene datos de ventas trimestrales. Este ejemplo multiplica el valor de las ventas de cada periodo por el número de columna del periodo.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `Period`

  * `Sales`

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla dinámica y añada este campo como dimensión de columna:

* `Period`

Cree la siguiente medida:

* `=Sum(Sales) * ColumnNo()`, para calcular la suma de los valores de venta multiplicada por el número de columna, que es el trimestre en este ejemplo.

Tabla de resultados

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

La suma del valor de las ventas de cada trimestre se multiplica por el resultado de salida de la función `ColumnNo`. Por ejemplo, el valor de las ventas en `Q4` es 4000, y el resultado de salida de la función `ColumnNo` devuelve `4` porque `Q4` es la cuarta columna. Por lo tanto, la expresión de medida multiplica `4000` por `4` y devuelve `16000`.

## Ejemplo: escenario de ColumnNo

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

#### Expresión de gráfico

Descripción

Un conjunto de datos contiene cifras de ventas trimestrales. Una empresa quiere aumentar los datos de ventas de Q1 y Q3 (las columnas impares) en un 5% y aumentar las ventas de las columnas restantes (Q2 y Q4) en un 10%.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `Period`

  * `Sales`

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla dinámica y añada este campo como dimensión de columna:

* `Period`

Cree las siguientes medidas:

* `=Sum(Sales)`, para calcular la suma de las ventas.

* `=If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)`, para aumentar los importes de venta de las columnas impares en un 5% y los de las columnas restantes en un 10%.

Tabla de resultados

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

Los resultados muestran que los valores de venta de las columnas impares, 1 y 3 (`Q1` y `Q3`), han aumentado un 5%, mientras que las restantes columnas pares, 2 y 4 (`Q2` y `Q4`), lo han hecho en un 10%.

## Ejemplo: escenario avanzado de ColumnNo

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

#### Expresión de gráfico

Descripción

Este ejemplo utiliza el mismo conjunto de datos que el escenario anterior para presentar el total acumulado de los valores de cada periodo.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `Period`

  * `Sales`

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla dinámica y añada este campo como dimensión de columna:

* `Period`

Cree la siguiente medida:

* `=RangeSum(Before(Sum(Sales), 0, ColumnNo()))`, para calcular el total acumulado.

Tabla de resultados

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

Este ejemplo muestra cómo utilizar la función `ColumnNo` para generar un total acumulado. La siguiente explicación proporciona más detalles sobre la expresión de medida: `RangeSum(Before(Sum(Sales), 0, ColumnNo()))`.

`Sum(Sales)`: calcula la suma de las ventas en la celda actual de la tabla dinámica.

`Before(Sum(Sales), 0, ColumnNo())`: la función `Before` recupera los valores de las columnas precedentes de la tabla dinámica.

* El argumento `Sum(Sales)` garantiza que la función recupere la suma de `Sales` para las celdas precedentes.

* El valor de desplazamiento de `0` especifica el desplazamiento de la columna (restante en el segmento de fila actual de la columna actual).

* `ColumnNo()` determina cuántas columnas hay que retroceder al recuperar los datos. Representa dinámicamente la posición de la columna actual (por ejemplo, para la columna 3, `ColumnNo()` es igual a `3`, por lo que la función mira hacia atrás a través de tres columnas).

`RangeSum()`: la función `RangeSum` calcula la suma del rango de valores proporcionado. Maneja los valores nulos tratándolos como cero. En esta expresión, `RangeSum` genera efectivamente un total acumulativo sumando todos los valores `Sales` precedentes recuperados por la función `Before()`, así como las ventas de la celda actual.