Función ALLSELECTED

Planteémonos el siguiente escenario: Queremos mostrar las ventas por país y calcular el porcentaje que éstas suponen con respecto al total. Para esto último creamos la siguiente medida:

Sales % = 
VAR __sales = [Sales]
VAR __allSales =
    CALCULATE(
        [Sales],
        ALL(Geography[Country])
    )
RETURN
    DIVIDE(
        __sales,
        __allSales
    )

Es decir, almacenamos las ventas (sin modificar el contexto) en la variable __sales y las ventas totales (limpiando de filtros la columna Geography[Country]) en la variable __allSales, y devolvemos el cociente de ambas cifras. Si llevamos esta medida a una tabla (junto con la columna Geography[Sales] y la medida [Sales]) el resultado es el que se muestra en la siguiente imagen:

Función ALLSELECTED

Vemos que en la columna “Sales %” se muestra correctamente el porcentaje que las ventas de cada país suponen con respecto al total. Por ejemplo, las ventas de Noruega (21.122 €) suponen el 2.14 % del total.

Ahora, supongamos que añadimos una segmentación a nuestro informe de forma que podamos filtrar por países. Y seleccionemos un par de ellos:

Función ALLSELECTED

Comprobamos que nuestra selección ha filtrado la columna Geography[Country], lo que ha producido que, en el objeto visual tabla, solo se estén mostrando los dos países que hemos seleccionado. En la columna “Sales %” se sigue calculando el porcentaje que las ventas de cada país representan con respecto al total. ¿A qué total? Al total correspondiente a las ventas de todos los países, pues es así como hemos creado nuestra variable __allSales:

VAR __allSales =
    CALCULATE(
        [Sales],
        ALL(Geography[Country])
    )