ALLSELECTED

La función ALLSELECTED elimina los filtros procedentes de las filas y columnas del objeto visual en el que se encuentre la medida, dejando los demás filtros de contexto o explícitos.

Sintaxis

ALLSELECTED(
    tableName
)

ALLSELECTED(
    columnName
    [, columnName...]
)

ALLSELECTED()

Parámetros
  • tableName: Nombre de la tabla a considerar.
  • columnName: Nombre de la columna a considerar, normalmente totalmente cualificada.
Valor devuelto

La función ALLSELECTED devuelve una tabla.

Información adicional

La función ALLSELECTED puede utilizarse para obtener los totales de los campos visibles en las consultas. Generalmente se utiliza como argumento en una función CALCULATE para imponer como filtro los elementos visibles. La función puede ser utilizada sin argumentos o con uno o más argumentos.

Ejemplos

Definimos la siguiente medida para calcular los totales de ventas (valor que se contextualizará en cada cálculo):

Ventas netas = SUM(FactInternetSales[SalesAmount])

Y la medida:

Ventas netas para meses seleccionados = CALCULATE(
    [Ventas netas],
    ALLSELECTED(DimDate[MonthNumberOfYear])
)

Ahora, si llevamos el campo DimDate[MonthNumberOfYear] al área de filas y las dos medidas creadas al área de valores de una tabla dinámica obtenemos el siguiente resultado:

Función ALLSELECTED. Ejemplo de uso

Vemos que, por defecto, los totales de ambas medidas coinciden.

Si ahora filtramos los valores situados en filas para mostrar solo información sobre algunos de ellos (por ejemplo, de los meses 4, 5 y 6):

Función ALLSELECTED. Ejemplo de uso

Vemos cómo los valores de la columna C consideran como filtro tan solo los meses que han sido seleccionados.

Este segundo ejemplo es semejante al anterior pero en el entorno Power BI Desktop. Partimos de la definición de una medida que sume las ventas:

Net Sales = SUM(FactSales[SalesAmount])

medida que, llevada a una visualización tipo "matriz" con los años en el campo de filas y la recién creada medida en el campo de valores, devuelve el resultado mostrado en la siguiente imagen:

Función ALLSELECTED. Ejemplo de uso

Definimos ahora la siguiente medida, haciendo uso de la función ALLSELECTED:

Net Sales Selected Years = CALCULATE(
    [Net Sales],
    ALLSELECTED(DimDate[CalendarYear])
)

Si llevamos esta medida a una matriz semejante a la anterior, obtenemos:

Función ALLSELECTED. Ejemplo de uso

Puede observarse cómo, al estar todos los años seleccionados por defecto, el valor de la medida para cada uno de los años coincide con el total de ventas. Si ahora imponemos un filtro explícito en la interfaz de Power BI Desktop para mostrar información solo de los años anteriores o igual a 2008:

Función ALLSELECTED. Ejemplo de uso

obtenemos:

Función ALLSELECTED. Ejemplo de uso

valor que coincide con la suma de las ventas para los años siendo mostrados en pantalla.

Siguiendo con el ejemplo anterior ¿cómo funcionaría la función ALLSELECTED sin referencias a tablas o columnas? Definamos la siguiente medida:

AllSelected = CALCULATE([Total Sales], ALLSELECTED())

Creamos una nueva segmentación para la categoría e reinicializamos ambas:

Función ALLSELECTED. Ejemplo de uso

Llevemos ahora la recién creada medida a una matriz semejante a las anteriores:

Función ALLSELECTED. Ejemplo de uso

(obsérvese la existencia de una primera columna correspondiente a registros de ventas que no tienen una categoría asociada).

Comprobamos que la función ALLSELECTED está forzando a que se ignoren los filtros de filas y columnas, se consideren en el cálculo de la medida las ventas de todos los países y todas las categorías y se considere el contexto impuesto "externamente" que, en este caso, no existe, pues no hemos realizado todavía ninguna selección en las segmentaciones de datos. Esto hace que el resultado del cálculo de la medida coincida siempre con el total de ventas: 80.450.597€.

Seleccionemos ahora un país, Canadá, por ejemplo:

Función ALLSELECTED. Ejemplo de uso

Se muestra solo la fila de Canadá y, siguiendo con la misma idea, para el cálculo de la medida se siguen obviando los filtros de filas y columnas y considerando solo los externos: Canadá. Es decir, se están contabilizando las ventas de Canadá para todas las categorías: 14.377.926€ (el total de ventas de Canadá).

Si seleccionamos la categoría de Bikes, por ejemplo:

Función ALLSELECTED. Ejemplo de uso

Ahora se muestra solo una fila (la de Canadá) y una columna (la de Bikes), y el valor devuelto por la medida es el resultado de obviar los filtros de filas y columnas y considerar solo los externos. Es decir, se devuelve siempre la cifra de ventas de Bikes para Canadá.

Seleccionemos ahora dos países (Canadá y Australia) y dos categorías (Bikes y Clothing). El resultado es el esperado:

Función ALLSELECTED. Ejemplo de uso

Se muestran las dos filas y las dos columnas, y el resultado coincide siempre con el total de ventas de los dos países y las dos categorías (lo que podemos comprobar sumando las cifras correspondientes en la primera de las matrices mostradas en el ejemplo anterior).

Podemos comparar las funciones ALL y ALLSELECTED de la siguiente forma: Partimos de una medida [Total Sales] que suma la columna de ventas:

Total Sales = SUM((FactResellerSales[SalesAmount]))

Y añadimos dos medidas adicionales:

AllCountries = CALCULATE([Total Sales], ALL(DimGeography))

AllSelectedCountries = CALCULATE([Total Sales], ALLSELECTED(DimGeography))

Llevamos ahora estas tres medidas a sendas matrices en las que cruzamos las ventas por país y categoría:

Función ALLSELECTED. Ejemplo de uso

Adicionalmente creamos una segmentación de datos para los países:

Función ALLSELECTED. Ejemplo de uso

La función ALL de la medida [AllCountries] devuelve toda la tabla de países (en este caso concreto no solo toda la columna de países, sino toda la tabla con la información geográfica). Esto supone que, en cada fila de la segunda matriz, se ignore el filtro impuesto por el país correspondiente a la fila y se realice el cálculo para todos los países (dando, para la categoría de accesorios, por ejemplo, la misma cifra, 571.298€, cifra que coincide con el total de ventas de dicha categoría).

La función ALLSELECTED también devuelve toda la tabla "salvo los filtros externos" que, en este caso, no existen. Es por ello que vemos que la tercera matriz coincide con la segunda.

Seleccionemos ahora un país en la segmentación de datos. Por ejemplo, Canadá:

Función ALLSELECTED. Ejemplo de uso

Veamos qué información muestran ahora nuestras matrices:

Función ALLSELECTED. Ejemplo de uso

En primer lugar, vemos que las tres están mostrando ahora solo la fila correspondiente a Canadá, tal y como debe ser. La primera matriz muestra los datos de ventas en Canadá para cada categoría, mismas cifras que teníamos antes de seleccionar un país.

En la segunda matriz, la función ALL sigue forzando que se realice el cálculo de la medida considerando todos los países (e ignorando el filtro del país al que corresponde cada fila). Es decir, para la categoría de accesorios, por ejemplo, sigue mostrando 571.298€ de ventas, cifra que coincide con el total de ventas de esta categoría para todos los países. Es decir, la información mostrada en esta segunda matriz no ha cambiado (para las filas que se muestran).

La tercera matriz, sin embargo, sí ha cambiado. La función ALLSELECTED está obligando a que se ignore el contexto impuesto en cada fila de la matriz (es decir, que se ignore que la fila mostrada se corresponde solo a Canadá), y se consideren solo "los países seleccionados externamente" que, en este caso, es solo Canadá. Es decir, en este caso, muestra los datos correctos correspondientes a Canadá. Pero, si en la segmentación de datos, seleccionamos un segundo país:

Función ALLSELECTED. Ejemplo de uso

vemos que esta tercera matriz muestra información diferente:

Función ALLSELECTED. Ejemplo de uso

Por supuesto, las tres matrices muestran ahora las filas correspondientes a los dos países seleccionados, Australia y Canadá: la primera matriz muestra las ventas correctas para cada cada categoría de cada país y la segunda matriz sigue realizando el cálculo de la medida incluyendo información de todos los países.

En la tercera matriz, sin embargo, el criterio sigue siendo el mismo que antes: para el cálculo de la medida, ignórese el contexto impuesto -en este caso- por el país al que se corresponde cada fila y considérese el contexto impuesto externamente que, en nuestro ejemplo, incluye los dos países mencionados. Es por ello que, con independencia del país al que se corresponda cada fila, la medida coincide con la suma de ventas de ambos países.

Funciones relacionadas
Categoría
Filtro
Enviado por admin el Mar, 04/12/2018 - 12:09