Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

cómo borrar todos los filtros en la mesa, excepto los filtros procedentes de otra tabla

Tengo el siguiente modelo de datos:

Objetivo anual de ventas de empleados de facto, semana de dimensión, empleado de Dimension

'Fact Annual Employee Sales Target'[Employee Key] * - 1 'Dimension Employee'[Employee Key]

'Fact Annual Employee Sales Target'[Week Key] * - 1 'Dimension Week'[Week Key]

Mi tabla de hechos tiene mis objetivos de ventas anuales para cada uno de mis empleados. Su resolución de tiempo es semana (no año, a pesar del nombre de la tabla), que sé que es redundante (pero es necesario para otros fines).

Tengo una página donde un usuario elige un empleado (a través de 'Miembro de dimensión'[Nombre del empleado]) en un panel de filtro (que filtra [Título del trabajo] en el modelo de datos). El usuario también elige el año (a través de 'Dimension Week'[Year]).

Quiero calcular el objetivo de ventas anual promedio para el "conjunto de pares" del empleado seleccionado para el año seleccionado, donde defino "conjunto de pares" como todos los empleados con el mismo [Título del trabajo]. ¿Cómo puedo hacer esto?

Hasta ahora he probado la siguiente medida:

Ventas Anuales Tgt - Conjunto de pares ?

SER __table ?
ADDCOLUMNS(

RESUMEN(

ALLEXCEPT( //necessary porque el filtro [Nombre del empleado] debe estar desactivado

'Objetivo de ventas anuales de facto'

,'Semana de la Dimensión'[Año]

,'Empleado de dimensión'[Título del trabajo]

)

)
,"Objetivo de ventas anual"

,MAX('Fact Annual Employee Sales Target'[Target]) //necessary porque esta tabla está en la resolución de la semana (no del año)
)

devolución

AVERAGEX(

__table

,[Objetivo de ventas anual]

)

Sin embargo, esta medida devuelve el objetivo de ventas del empleado seleccionado, no el promedio del conjunto de pares del empleado. Sospecho que el problema es que no estoy limpiando correctamente los filtros. Pero, no sé cómo corregir eso.

1 ACCEPTED SOLUTION
CNENFRNL
Community Champion
Community Champion

Hola, @qubit813 ,

En primer lugar, en cuanto a esta parte de su medida,

SUMMARIZE(
        ALLEXCEPT( //necessary because the [Employee Name] filter must be cleared
            'Fact Annual Sales Target'
            ,'Dimension Week'[Year]
            ,'Dimension Employee'[Job Title] )
...

ALLEXCEPT() no materializa una tabla intermedia como se esperaba. Cuando se utiliza como una función de tabla,ALLEXCEPT materializa todas las combinaciones únicas de las columnas de la tabla especificada en el primer argumento que no se enumeran en los argumentos siguientes. En este caso, el resultado solo tiene las columnas de la tabla e ignora la tabla expandida. Es posible que desee consultar este artículo para obtener más detalles, que recomiendo encarecidamente.

En segundo lugar, esbozo una maqueta en consecuencia a su desciprción,

Screenshot 2020-11-14 213119.png

A continuación, se crea una medida

Avg Target = 
VAR __titles =
    DISTINCT (
        SELECTCOLUMNS (
            ALLSELECTED ( 'Dimension Employee' ),
            "Title", 'Dimension Employee'[Job Title]
        )
    )
RETURN
    CALCULATE ( [Avg], ALL ( 'Dimension Employee' ), __titles )
//referenced measure: Avg = AVERAGE( 'Fact Annual Employee Sales Target'[Target] )

Parece que cabe en mi maqueta, es posible que desee ver más detalles en el archivo adjunto.


Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is still way beyond their comprehension!

DAX is simple, but NOT EASY!

View solution in original post

1 REPLY 1
CNENFRNL
Community Champion
Community Champion

Hola, @qubit813 ,

En primer lugar, en cuanto a esta parte de su medida,

SUMMARIZE(
        ALLEXCEPT( //necessary because the [Employee Name] filter must be cleared
            'Fact Annual Sales Target'
            ,'Dimension Week'[Year]
            ,'Dimension Employee'[Job Title] )
...

ALLEXCEPT() no materializa una tabla intermedia como se esperaba. Cuando se utiliza como una función de tabla,ALLEXCEPT materializa todas las combinaciones únicas de las columnas de la tabla especificada en el primer argumento que no se enumeran en los argumentos siguientes. En este caso, el resultado solo tiene las columnas de la tabla e ignora la tabla expandida. Es posible que desee consultar este artículo para obtener más detalles, que recomiendo encarecidamente.

En segundo lugar, esbozo una maqueta en consecuencia a su desciprción,

Screenshot 2020-11-14 213119.png

A continuación, se crea una medida

Avg Target = 
VAR __titles =
    DISTINCT (
        SELECTCOLUMNS (
            ALLSELECTED ( 'Dimension Employee' ),
            "Title", 'Dimension Employee'[Job Title]
        )
    )
RETURN
    CALCULATE ( [Avg], ALL ( 'Dimension Employee' ), __titles )
//referenced measure: Avg = AVERAGE( 'Fact Annual Employee Sales Target'[Target] )

Parece que cabe en mi maqueta, es posible que desee ver más detalles en el archivo adjunto.


Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is still way beyond their comprehension!

DAX is simple, but NOT EASY!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.