ALL
Se aplica a:columna Calculadatabla calculadaMedidacálculo visual
Devuelve todas las filas de una tabla o todos los valores de una columna, omiiendo los filtros que se podrían haber aplicado. Esta función es ú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 |
Tabla en la que desea borrar los filtros. |
column |
Columna en la que desea borrar los filtros. |
El argumento de la función ALL debe ser una referencia a una tabla base o una referencia a una columna base. No se pueden usar expresiones de tabla ni expresiones de columna con la función ALL.
Valor devuelto
Tabla o columna con filtros quitados.
Observaciones
Esta función no se usa por sí misma, pero actúa como una función intermedia que se puede usar para cambiar el conjunto de resultados en el que se realiza algún otro cálculo.
El comportamiento normal de las expresiones DAX que contienen la función ALL() es que se omitirán los filtros aplicados. Sin embargo, hay algunos escenarios en los que esto no es el caso debido a
auto-exist
, una tecnología de DAX que optimiza el filtrado para reducir la cantidad de procesamiento necesario para determinadas consultas DAX. Un ejemplo en el que existen automáticamente y ALL() proporcionan resultados inesperados es cuando se filtran en dos o más columnas de la misma tabla (como cuando se usan segmentaciones) y hay una medida en esa misma tabla que usa ALL(). En este caso, existirá automáticamente combinará los varios filtros en uno y solo filtrará por combinaciones de valores existentes. Debido a esta combinación, la medida se calculará en las combinaciones existentes de valores y el resultado se basará en valores filtrados en lugar de en todos los valores según lo previsto. Para obtener más información sobre la existencia automática y su efecto en los cálculos, consulte el artículo Understanding DAX Auto- Exist de Microsoft MVP alberto Ferrari sobre sql.bi.com.En la tabla siguiente se describe cómo puede usar las funciones ALL y ALLEXCEPT en diferentes escenarios.
Función y uso Descripción ALL() Quita todos los filtros en todas partes. ALL() solo se puede usar para borrar filtros, pero no para devolver una tabla. ALL(tabla) Quita todos los filtros de la tabla especificada. En efecto, ALL(Tabla) devuelve todos los valores de la tabla, quitando los filtros del contexto que, de lo contrario, podrían haberse aplicado. Esta función es útil cuando se trabaja con muchos niveles de agrupación y se desea crear un cálculo que cree una relación de un valor agregado con el valor total. En el primer ejemplo se muestra este escenario. ALL (Columna[, Columna[, ...]]) Quita todos los filtros de las columnas especificadas de la tabla; Todos los demás filtros de otras columnas de la tabla se siguen aplicando. Todos los argumentos de columna deben proceder de la misma tabla. La variante de ALL(columna) es útil cuando desea quitar los filtros de contexto de una o más columnas específicas y mantener todos los demás filtros de contexto. En los ejemplos segundo y tercero se muestra este escenario. ALLEXCEPT(Tabla, Columna1 [,Columna2]...) Quita todos los filtros de contexto de la tabla, excepto los filtros que se aplican a las columnas especificadas. Este es un acceso directo práctico para situaciones en las que desea quitar los filtros en muchas columnas de una tabla, pero no todas. Esta función no se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas o reglas de seguridad de nivel de fila (RLS).
Ejemplo 1
Calcular la proporción de ventas de categoría a ventas totales
Supongamos que desea encontrar la cantidad de ventas de la celda actual, en la tabla dinámica, dividida por las ventas totales de todos los revendedores. Para asegurarse de que el denominador es el mismo independientemente de cómo el usuario de tabla dinámica pueda filtrar o agrupar los datos, defina una fórmula que use ALL para crear el total general correcto.
En la tabla siguiente se muestran los resultados cuando se crea una nueva medida, relación de ventas de todos los revendedores, con la fórmula que se muestra en la sección de código. 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, use las características de formato de Excel para aplicar un formato de número de porcentaje a las celdas que contienen la medida.
Etiquetas de fila | Accesorios | Bicicletas | Ropa | 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% |
Total general | 0,70% | 82.47% | 2.18% | 14.65% | 100,00% |
formula
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
La fórmula se construye de la siguiente manera:
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 filtros de contexto aplicados en CalendarYear y ProductCategoryName.Para el denominador, empiece especificando una tabla, ResellerSales_USD y use la función ALL para quitar todos los filtros de contexto de la tabla.
A continuación, use la función SUMX para sumar los valores de la columna ResellerSales_USD[SalesAmount_USD]. En otras palabras, obtendrá la suma de ResellerSales_USD[SalesAmount_USD] para todas las ventas de revendedores.
Ejemplo 2
Calcular la proporción de ventas de productos al total de ventas hasta el año actual
Supongamos que desea crear una tabla que muestre el porcentaje de ventas en comparación con los años de cada categoría de producto (ProductCategoryName). Para obtener el porcentaje de cada año sobre cada valor de ProductCategoryName, debe dividir la suma de ventas de ese año y categoría de producto en particular por la suma de ventas de la misma categoría de producto durante todos los años. En otras palabras, desea mantener el filtro en ProductCategoryName, pero quitar el filtro del año al calcular el denominador del porcentaje.
En la tabla siguiente se muestran los resultados cuando se crea una nueva medida, año de ventas de revendedores, con la fórmula que se muestra en la sección de código. Para ver cómo funciona esto, agregue el campo CalendarYear al área
Etiquetas de fila | Accesorios | Bicicletas | Ropa | 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% |
formula
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
La fórmula se construye de la siguiente manera:
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 filtros de contexto aplicados en las columnas CalendarYear y ProductCategoryName.Para el denominador, quite el filtro existente en CalendarYear mediante la función ALL(Columna). Esto calcula la suma sobre las filas restantes de la tabla ResellerSales_USD, después de aplicar los filtros de contexto existentes de las etiquetas de columna. El efecto neto es que para el denominador la suma se calcula sobre el ProductCategoryName seleccionado (el filtro de contexto implícito) y para todos los valores de Year.
Ejemplo 3
Calcular la contribución de las categorías de productos al total de ventas por año
Supongamos que desea crear una tabla que muestre el porcentaje de ventas de cada categoría de producto, de forma anual. Para obtener el porcentaje de cada categoría de producto en un año determinado, debe calcular la suma de ventas de 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 del año n en todas las categorías de productos. En otras palabras, desea mantener el filtro al año, pero quitar el filtro en ProductCategoryName al calcular el denominador del porcentaje.
En la tabla siguiente se muestran los resultados cuando se crea una nueva medida, Reseller Sales CategoryName, con la fórmula que se muestra en la sección de código. 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 de Etiquetas de columna. A continuación, agregue la nueva medida al área Valores de la tabla dinámica. Para ver los resultados como porcentajes, use las características de formato de Excel para aplicar un formato de número de porcentaje a las celdas que contienen la nueva medida, Reseller Sales CategoryName.
Etiquetas de fila | Accesorios | Bicicletas | Ropa | 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% |
formula
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))
La fórmula se construye de la siguiente manera:
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 filtros de contexto aplicados en los campos, CalendarYear y ProductCategoryName.Para el denominador, use la función , ALL(Column), para quitar el filtro en ProductCategoryName y calcular la suma sobre las filas restantes de la tabla ResellerSales_USD, después de aplicar los filtros de contexto existentes de las etiquetas de fila. El efecto neto es que, para el denominador, la suma se calcula a lo largo del año seleccionado (el filtro de contexto implícito) y para todos los valores de ProductCategoryName.
Contenido relacionado
Funciones de filtroALL funciónALLEXCEPT funciónFILTER función