Función ALL (DAX)

Devuelve todas las filas de una tabla o todos los valores de una columna y se ignoran los filtros que se puedan haber aplicado. Esta función resulta útil para borrar filtros y crear cálculos en todas las filas de una tabla.

Sintaxis

ALL( {<table> | <column>[, <column>[, <column>[,…]]]} )

Parámetros

Término

Definición

table

La tabla de la que desea borrar filtros.

column

La columna de la que desea borrar filtros.

El argumento de la función ALL debe ser una referencia a una tabla base o a una columna base. Con la función ALL no se pueden usar expresiones de tabla o de columna.

Valor devuelto

La tabla o la columna con los filtros quitados.

Comentarios

Esta función no se usa por sí sola, sino que sirve de función intermedia que se puede usar para cambiar el conjunto de resultados en los que se realizan otros cálculos.

Tal y como se describe en la siguiente tabla, puede utilizar funciones ALL y ALLEXCEPT en escenarios diferentes.

Función y uso

Descripción

ALL(Table)

Quita todos los filtros de la tabla especificada. La función ALL(Table) devuelve todos los valores de la tabla y quita los filtros del contexto que, de otra forma, se podrían haber aplicado.

Esta función resulta útil cuando se trabaja con muchos niveles de agrupación y se desea elaborar un cálculo que cree una proporción de un valor agregado al valor total. En el primer ejemplo se demuestra este escenario.

ALL (Column[, Column[, …]])

Quita todos los filtros de las columnas especificadas de la tabla; todos los demás filtros de las demás columnas de la tabla se siguen aplicando. Todos los argumentos de columna deben proceder de la misma tabla.

La variante ALL(Column) resulta útil cuando se desea quitar los filtros de contexto de una o varias columnas específicas, y conservar todos los demás filtros de contexto.

En los ejemplos segundo y tercero se demuestra este escenario.

ALLEXCEPT(Table, Column1 [,Column2]...)

Quita todos los filtros de contexto de la tabla excepto los filtros que se aplican a las columnas especificadas.

Es un acceso directo conveniente para las situaciones en las que desea quitar los filtros en muchas columnas de una tabla, pero no en todas.

Ejemplo: calcular la proporción de ventas por categoría con respecto al total de ventas

Descripción

Supongamos que desea averiguar el importe de ventas de la celda actual, en su tabla dinámica, dividido entre las ventas totales de todos los distribuidores. Para asegurarse de que el denominador es el mismo independientemente del modo en el que el usuario de la tabla dinámica pueda filtrar o agrupar los datos, defina una fórmula que use ALL para crear el total general correcto.

La tabla siguiente muestra los resultados cuando se crea la nueva medida, llamada All Reseller Sales Ratio, usando la fórmula de la sección de códigos. Para ver su funcionamiento, agregue el campo CalendarYear al área Etiquetas de fila de la tabla dinámica, y agregue el campo ProductCategoryName al área Etiquetas de columna. A continuación, arrastre la medida, All Reseller Sales Ratio, al área Valores de la tabla dinámica. Para ver los resultados como porcentajes, utilice las características de formato de Excel para aplicar un formato de número de porcentaje a las celdas que contengan la medida.

Ventas de todos los distribuidores

Etiquetas de columna

 

 

 

 

Row Labels

Accessories

Bikes

Clothing

Components

Grand Total

2001

0.02%

9.10%

0.04%

0.75%

9.91%

2002

0.11%

24.71%

0.60%

4.48%

29.90%

2003

0.36%

31.71%

1.07%

6.79%

39.93%

2004

0.20%

16.95%

0.48%

2.63%

20.26%

Grand Total

0.70%

82.47%

2.18%

14.65%

100.00%

Código

=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])

Comentarios

La fórmula se construye del siguiente modo:

  1. El numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), es la suma de los valores de ResellerSales_USD[SalesAmount_USD] para la celda actual de la tabla dinámica, con los filtros de contexto aplicados en CalendarYear y ProductCategoryName.

  2. Para el denominador, se comienza mediante la especificación de una tabla, ResellerSales_USD, y se usa la función ALL para quitar todos los filtros de contexto de la tabla.

  3. A continuación, se usa la función SUMX que sume los valores de la columna ResellerSales_USD[SalesAmount_USD]. Es decir, se obtiene la suma de ResellerSales_USD[SalesAmount_USD] para todas las ventas de distribuidor.

Para obtener más información acerca de la creación de medidas, vea Crear una medida en una tabla dinámica o gráfico dinámico.

Nota

El ejemplo anterior usa las tablas ResellerSales_USD, DateTime y ProductCategory del libro de ejemplo de DAX. Para obtener más información acerca de los ejemplos, vea Obtener datos de muestra para PowerPivot .

Ejemplo: calcular la proporción de las ventas por producto a lo largo del año actual

Descripción

Suponga que desea crear una tabla que muestra el porcentaje de ventas comparado a lo largo de los años por cada categoría de producto (ProductCategoryName). Para obtener el porcentaje de cada año sobre cada valor de ProductCategoryName, es necesario dividir la suma de ventas de ese año concreto y la categoría de producto entre la suma de ventas para la misma categoría de producto durante todos los años. Es decir, desea mantener el filtro de ProductCategoryName pero quita el filtro del año al calcular el denominador del porcentaje.

La tabla siguiente muestra los resultados cuando se crea la nueva medida, llamada Reseller Sales Year, usando la fórmula de la sección de códigos. Para ver su funcionamiento, agregue el campo CalendarYear al área Etiquetas de fila de la tabla dinámica, y agregue el campo ProductCategoryName al área Etiquetas de columna. Para ver los resultados como porcentajes, utilice las características de formato de Excel para aplicar un formato de número del porcentaje a las celdas que contengan la medida Reseller Sales Year.

Año de ventas de distribuidor

Etiquetas de columna

 

 

 

 

Row Labels

Accessories

Bikes

Clothing

Components

Grand Total

2001

3.48%

11.03%

1.91%

5.12%

9.91%

2002

16.21%

29.96%

27.29%

30.59%

29.90%

2003

51.62%

38.45%

48.86%

46.36%

39.93%

2004

28.69%

20.56%

21.95%

17.92%

20.26%

Grand Total

100.00%

100.00%

100.00%

100.00%

100.00%

Código

=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))

Comentarios

La fórmula se construye del siguiente modo:

  1. El numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), es la suma de los valores de ResellerSales_USD[SalesAmount_USD] para la celda actual de la tabla dinámica, con los filtros de contexto aplicados en las columnas CalendarYear y ProductCategoryName.

  2. Para el denominador, quite el filtro existente en CalendarYear utilizando la función ALL(Column). Esto calcula la suma sobre las filas restantes en la tabla ResellerSales_USD, después de aplicar los filtros de contexto existentes desde las etiquetas de columna. El efecto neto es que, para el denominador, la suma se calcula sobre el valor de ProductCategoryName seleccionado (el filtro de contexto implícito) y para todos los valores de Year.

Para obtener más información acerca de la creación de medidas, vea Crear una medida en una tabla dinámica o gráfico dinámico.

Nota

Este ejemplo usa las tablas ResellerSales_USD, DateTime y ProductCategory del libro de ejemplo de DAX. Para obtener más información acerca de los ejemplos, vea Obtener datos de muestra para PowerPivot .

Ejemplo: calcular la contribución de las categorías del producto a las ventas totales por año

Descripción

Suponga que desea crear una tabla que muestre el porcentaje de ventas para cada categoría de producto, en una base año a año. Para obtener el porcentaje de cada categoría de producto de un año determinado, es necesario calcular la suma de ventas para esa categoría de producto concreta (ProductCategoryName) en el año n y, a continuación, dividir el valor resultante por la suma de ventas de ese año n en todas las categorías de producto. Es decir, desea mantener el filtro en el año pero quitarlo en ProductCategoryName cuando calcule el denominador del porcentaje.

La tabla siguiente muestra los resultados cuando se crea nueva medida, llamada Reseller Sales CategoryName, usando la fórmula de la sección de códigos. Para ver su funcionamiento, agregue el campo CalendarYear al área Etiquetas de fila de la tabla dinámica, y agregue el campo ProductCategoryName al área Etiquetas de columna. A continuación, agregue la nueva medida al área Valores de la tabla dinámica. Para ver los resultados como porcentajes, utilice las características de formato de Excel para aplicar un formato de número de porcentaje a las celdas que contengan la nueva medida, Reseller Sales CategoryName.

Nombre de categoría de ventas de distribuidor

Etiquetas de columna

 

 

 

 

Row Labels

Accessories

Bikes

Clothing

Components

Grand Total

2001

0.25%

91.76%

0.42%

7.57%

100.00%

2002

0.38%

82.64%

1.99%

14.99%

100.00%

2003

0.90%

79.42%

2.67%

17.01%

100.00%

2004

0.99%

83.69%

2.37%

12.96%

100.00%

Grand Total

0.70%

82.47%

2.18%

14.65%

100.00%

Código

=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))

Comentarios

La fórmula se construye del siguiente modo:

  1. El numerador, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), es la suma de los valores de ResellerSales_USD[SalesAmount_USD] para la celda actual de la tabla dinámica, con los filtros de contexto aplicados en los campos CalendarYear y ProductCategoryName.

  2. Para el denominador, use la función All(Column) para quitar el filtro en ProductCategoryName y calcule la suma de las filas restantes en la tabla ResellerSales_USD, después de aplicar los filtros de contexto existentes desde las etiquetas de fila. El efecto neto es que para el denominador, la suma se calcula en el valor Year seleccionado (el filtro de contexto implícito) y para todos los valores de ProductCategoryName.

Para obtener más información acerca de la creación de medidas, vea Crear una medida en una tabla dinámica o gráfico dinámico.

Nota

Este ejemplo usa las tablas ResellerSales_USD, DateTime y ProductCategory del libro de ejemplo de DAX. Para obtener más información acerca de los ejemplos, vea Obtener datos de muestra para PowerPivot.