Compartir a través de


Función ALL

Devuelve todas las filas de una tabla o todos los valores de una columna; se omiten 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.

<Estado del tema:> parte de la información de este tema es una versión preliminar y está sujeta a cambios en versiones futuras. La información preliminar describe las nuevas características o cambios de las características existentes en el Service Pack 1 (SP1) de Microsoft SQL Server 2012 Community Technology Preview 4 (CTP4). En los casos en los que [Column] se marca como columna Date con Mark como tabla de fecha

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 cómo funciona esto, 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 contienen la medida.

All Reseller Sales

Etiquetas de columna

 

 

 

 

Etiquetas de fila

Accessories

Bikes

Clothing

Componentes

Total general

2005

0.02%

9.10%

0.04%

0.75%

9.91%

2006

0.11%

24.71%

0.60%

4.48%

29.90%

2007

0.36%

31.71%

1.07%

6.79%

39.93%

2008

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]

En el ejemplo anterior se usan las tablas ResellerSales_USD, DateTime y ProductCategory del libro de ejemplo de DAX. Para obtener más información acerca de los datos de ejemplo, vea Obtener datos de ejemplo .

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 cómo funciona esto, 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 contienen la medida Reseller Sales Year.

Reseller Sales Year

Etiquetas de columna

 

 

 

 

Etiquetas de fila

Accessories

Bikes

Clothing

Componentes

Total general

2005

3.48%

11.03%

1.91%

5.12%

9.91%

2006

16.21%

29.96%

27.29%

30.59%

29.90%

2007

51.62%

38.45%

48.86%

46.36%

39.93%

2008

28.69%

20.56%

21.95%

17.92%

20.26%

Total general

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 datos de ejemplo, vea Obtener datos de ejemplo .

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 ny, 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 cómo funciona esto, 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.

Reseller Sales CategoryName

Etiquetas de columna

 

 

 

 

Etiquetas de fila

Accessories

Bikes

Clothing

Componentes

Total general

2005

0.25%

91.76%

0.42%

7.57%

100.00%

2006

0.38%

82.64%

1.99%

14.99%

100.00%

2007

0.90%

79.42%

2.67%

17.01%

100.00%

2008

0.99%

83.69%

2.37%

12.96%

100.00%

Total general

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 datos de ejemplo, vea Obtener datos de ejemplo.

Vea también

Referencia

Función ALL

Función ALLEXCEPT

Función FILTER

Otros recursos

Funciones de filtro (DAX)