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
tmhrzgr
Frequent Visitor

Medir con datos de otra tabla con múltiples condiciones

Hola a todos

Estoy un poco confundido por una medida, ya que estoy buscando la solución correcta, pero no puedo encontrarla. 😞 Espero que puedas ayudarme. (Y lo siento por el muro de texto. :))

En primer lugar, algunos datos de muestra:

Mesa: Entradas

TicketIDOpenDateTimeEquipoSlaTyp
116.06.2019 12:05:17PkEstándar
216.06.2019 14:17:20GkEstándar
317.07.2019 11:32:22GkBasic Plus
418.07.2019 17:00:21GkEstándar

Esta es la tabla "principal". Aquí está, por supuesto, más datos almacenados, pero para ese ejemplo esta tabla es buena.

Tabla: BZuLi

TicketIDAktionDateTimeAcciónToDoDateSlaEinhaltung
116.06.2019 12:00:23Correo entrante
116.06.2019 12:05:17Entrada creada
116.06.2019 12:06:06Nota
116.06.2019 12:17:44ToDo17.06.20191
117.06.2019 14:12:44Entrada cerrada
120.06.2019 08:52:21Entrada reabierta
120.06.2019 08:55:00ToDo21.06.20190
122.06.2019 13:22:11Entrada cerrada
216.06.2019 13:48:31Correo entrante
216.06.2019 14:17:20Entrada creada
216.06.2019 14:20:19ToDo17.06.20191
217.06.2019 09:09:12ToDo20.06.20191
220.06.2019 15:42:31Entrada cerrada

Por cada ticket de la tabla "Tickets" puede haber varias acciones. Como aquí: por cada boleto tenemos un correo electrónico entrante, una creación de entradas, notas, varios todos, tal vez una reapertura de boleto y así sucesivamente. Tenga en cuenta aquí la columna "SlaEinhaltung". Esta columna se establece para cada acción etiquetada con "ToDo" y comprueba si la acción SIGUIENTE con "ToDo" o "Ticket closed" está en (o antes) la fecha del conjunto "ToDoDate". Si es así, se alcanza el objetivo (1), si no, entonces no (0).

La tabla "BZuLi" tiene una relación con la tabla "Tickets" a través de TicketID (1:n, 1 boleto puede tener varias entradas en BZuLi).

Tabla: ZieleNV

EquipoSlaTyp70p100p150p
PkEstándar87,00%90,50%93,00%
GkEstándar89,00%93,50%96,50%
GkBasic Plus89,00%93,50%96,50%

Esta tabla es una tabla de definición para mi logro de objetivos. Por ejemplo: Estoy trabajando para el equipo "GK" y trabajando con Standard y Basic Plus-Tickets. Si el 93,50% de la columna BZuLi "SlaEinhaltung" tiene un valor positivo (1), estoy alcanzando el 100% de mi meta. Cuando hay más del 96,50%, estoy alcanzando el 150% de mi meta. Con el 94,57% está en el medio.

El cálculo para el porcentaje en sí es fácil. Tengo una medida para eso, que resume los valores positivos en BZuLi (1) y el recuento de todos los valores (0 y 1) y hacer algunas matemáticas:

SlaProzentBZuLi = 

VAR SlaPositiv = CALCULATE(COUNTROWS(BZuLi);BZuLi[SlaEinhaltung] = 1)
VAR SlaGesamt  = CALCULATE(COUNTROWS(BZuLi);NOT(ISBLANK(BZuLi[SlaEinhaltung])))

RETURN SlaPositiv / SlaGesamt

Pero ahora tengo el desafío de meter este valor en la meta. Mi pensamiento aquí es, que necesito una nueva medida que compruebe el valor de la primera medida "SlaProzentBZuLi" y los calcule en ese objetivo. Pero necesito comprobar primero el equipo y el SlaTyp para obtener el valor correcto para ese objetivo. Por eso hice esta medida:

ZielProzentBZuLi = 

VAR z70p  = LOOKUPVALUE(ZieleNV[70p];ZieleNV[Team];LOOKUPVALUE(Tickets[Team];Tickets[TicketID];SELECTEDVALUE(BZuLi[TicketID]));ZieleNV[SlaTyp];LOOKUPVALUE(Tickets[SlaTyp];Tickets[TicketID];SELECTEDVALUE(BZuLi[TicketID])))
VAR z100p = LOOKUPVALUE(ZieleNV[100p];ZieleNV[Team];LOOKUPVALUE(Tickets[Team];Tickets[TicketID];SELECTEDVALUE(BZuLi[TicketID]));ZieleNV[SlaTyp];LOOKUPVALUE(Tickets[SlaTyp];Tickets[TicketID];SELECTEDVALUE(BZuLi[TicketID])))
VAR z150p = LOOKUPVALUE(ZieleNV[150p];ZieleNV[Team];LOOKUPVALUE(Tickets[Team];Tickets[TicketID];SELECTEDVALUE(BZuLi[TicketID]));ZieleNV[SlaTyp];LOOKUPVALUE(Tickets[SlaTyp];Tickets[TicketID];SELECTEDVALUE(BZuLi[TicketID])))


RETURN SWITCH(TRUE();
            BZuLi[SlaProzentBZuLi] >= z150p;1,5000;
            BZuLi[SlaProzentBZuLi] >= z100p && BZuLi[SlaProzentBZuLi] < z150p;1,0+0,5*(BZuLi[SlaProzentBZuLi]-z100p)/(z150p-z100p);
            BZuLi[SlaProzentBZuLi] >= z70p  && BZuLi[SlaProzentBZuLi] < z100p;0,7+0,3*(BZuLi[SlaProzentBZuLi]-z70p)/(z100p-z70p);
            BZuLi[SlaProzentBZuLi] < z70p;0,7*BZuLi[SlaProzentBZuLi])

PowerBiScreenshot.pngPero esto es - tristemente - no funciona. El resultado es siempre 150%, incluso cuando el valor mensual está por debajo del objetivo del 70%. Tengo una matriz para eso (ver a la izquierda). Mira los valores de "Juli 2019". El porcentaje del objetivo alcanzado se calcula de la manera correcta. Pero la medida "ZielProzentBZuLi" la calcula en el valor incorrecto (150%).

¿Cómo puedo resolver esto?

Gracias por su paciencia y con suerte solución! 🙂

1 ACCEPTED SOLUTION
v-lid-msft
Community Support
Community Support

Hola @tmhrzgr ,

Podemos intentar utilizar la siguiente medida para resolverlo:

ZielProzentBZuLi =
VAR z70p =
    CALCULATE (
        MAX ( ZieleNV[70p] );
        FILTER (
            ZieleNV;
            ZieleNV[Team] IN DISTINCT ( Tickets[Team] )
                && ZieleNV[SlaTyp] IN DISTINCT ( Tickets[SlaTyp] )
        )
    )
VAR z100p =
    CALCULATE (
        MAX ( ZieleNV[100p] );
        FILTER (
            ZieleNV;
            ZieleNV[Team] IN DISTINCT ( Tickets[Team] )
                && ZieleNV[SlaTyp] IN DISTINCT ( Tickets[SlaTyp] )
        )
    )
VAR z150p =
    CALCULATE (
        MAX ( ZieleNV[150p] );
        FILTER (
            ZieleNV;
            ZieleNV[Team] IN DISTINCT ( Tickets[Team] )
                && ZieleNV[SlaTyp] IN DISTINCT ( Tickets[SlaTyp] )
        )
    )
RETURN
    SWITCH (
        TRUE ();
        BZuLi[SlaProzentBZuLi] >= z150p; 1,5000;
        BZuLi[SlaProzentBZuLi] >= z100p
            && BZuLi[SlaProzentBZuLi] < z150p; 1,0 + 0,5 * ( BZuLi[SlaProzentBZuLi] - z100p ) / ( z150p - z100p );
        BZuLi[SlaProzentBZuLi] >= z70p
            && BZuLi[SlaProzentBZuLi] < z100p; 0,7 + 0,3 * ( BZuLi[SlaProzentBZuLi] - z70p ) / ( z100p - z70p );
        BZuLi[SlaProzentBZuLi] < z70p; 0,7 * BZuLi[SlaProzentBZuLi]
    )

Si no funciona, ¿podría comprobar el resultado de la variable z70p/z100p/z150p en la medida de origen y nueva medida? ¿Qué campo se filtra en el informe?


Saludos

Community Support Team _ Dong Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

3 REPLIES 3
v-lid-msft
Community Support
Community Support

Hola @tmhrzgr ,

Podemos intentar utilizar la siguiente medida para resolverlo:

ZielProzentBZuLi =
VAR z70p =
    CALCULATE (
        MAX ( ZieleNV[70p] );
        FILTER (
            ZieleNV;
            ZieleNV[Team] IN DISTINCT ( Tickets[Team] )
                && ZieleNV[SlaTyp] IN DISTINCT ( Tickets[SlaTyp] )
        )
    )
VAR z100p =
    CALCULATE (
        MAX ( ZieleNV[100p] );
        FILTER (
            ZieleNV;
            ZieleNV[Team] IN DISTINCT ( Tickets[Team] )
                && ZieleNV[SlaTyp] IN DISTINCT ( Tickets[SlaTyp] )
        )
    )
VAR z150p =
    CALCULATE (
        MAX ( ZieleNV[150p] );
        FILTER (
            ZieleNV;
            ZieleNV[Team] IN DISTINCT ( Tickets[Team] )
                && ZieleNV[SlaTyp] IN DISTINCT ( Tickets[SlaTyp] )
        )
    )
RETURN
    SWITCH (
        TRUE ();
        BZuLi[SlaProzentBZuLi] >= z150p; 1,5000;
        BZuLi[SlaProzentBZuLi] >= z100p
            && BZuLi[SlaProzentBZuLi] < z150p; 1,0 + 0,5 * ( BZuLi[SlaProzentBZuLi] - z100p ) / ( z150p - z100p );
        BZuLi[SlaProzentBZuLi] >= z70p
            && BZuLi[SlaProzentBZuLi] < z100p; 0,7 + 0,3 * ( BZuLi[SlaProzentBZuLi] - z70p ) / ( z100p - z70p );
        BZuLi[SlaProzentBZuLi] < z70p; 0,7 * BZuLi[SlaProzentBZuLi]
    )

Si no funciona, ¿podría comprobar el resultado de la variable z70p/z100p/z150p en la medida de origen y nueva medida? ¿Qué campo se filtra en el informe?


Saludos

Community Support Team _ Dong Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hola @v miembro-msft,

gracias por su respuesta. Su solución funciona como espero - impresionante! ¡Gracias por eso! 🙂

Sólo un seguimiento rápido de esto (incluso si no está relacionado con el tema ahora): ¿tengo alguna inopiencia en el cálculo de la columna "Suma" en una matriz-visual?

Supongamos el siguiente ejemplo en la matriz-visual:

Matrix-visual with results.pngEn Mai 2019 tenemos un valor global del 85,70%. Esto se debe a que el recuento de billetes "estándar" es mayor que los tickets "Basic Plus", por lo que el peso de estos boletos es mayor, también, lo que resulta en este valor global.

¿Qué tengo que hacer cuando quiero que "Standard" y "Basic Plus" tengan el mismo peso? Entonces: (92,47%+76,48%)/2 a 84,48%? ¿Se puede lograr esto dentro de la misma medida o necesito una segunda?

Gracias por su amable apoyo! ¡Ya te lo agradezco! 🙂

Hola @tmhrzgr ,

Podemos intentar utilizar la siguiente medida para cumplir con sus requisitos:

Measure =
CALCULATE (
    AVERAGEX ( DISTINCT ( 'Tickets'[SlaTyp] ), CALCULATE ( [Old Measure] ) ),
    ALLSELECTED ( 'Tickets'[SlaTyp] )
)

Si no funciona, ¿podría compartir la fórmula de la medida "Target NV" después de eliminar cualquier información confidencial?


Saludos

Community Support Team _ Dong Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

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.