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
Syndicate_Admin
Administrator
Administrator

Mostrar el % total visual para el período actual y anterior

Querida comunidad,

Tengo problemas para calcular el % total visual del esfuerzo de trabajo para el período anterior utilizando DATEADD.

Tengo algunos datos que muestran cuánto tiempo se dedica a cada actividad laboral ('Workdetails') Si la actividad laboral ha durado varios días, las horas se distribuyen uniformemente para las fechas ('Work effort distributed (h)').

El requisito es comparar el esfuerzo de trabajo del período actual y el período anterior. Los datos deben ser slicables y aún así mostrar el 100% en la imagen para cualquier período de tiempo seleccionado / selecciones de segmentación de datos.

Tengo el siguiente tipo de datos:

AñoCuartoMesDíaWorkidPaísPLDetalles de trabajoFecha de inicioFecha de finalizaciónDistributedDatesEffort_Hours+MinutosEsfuerzo de trabajo distribuido (h)
2021Qtr 4Octubre271Emiratos Árabes UnidosSAABSocios de formación27.10.2021 0:0027.10.2021 0:0027.10.2021 0:0044
2021Qtr 4Diciembre122Samoa AmericanaEQUIPODesarrollo personal12.12.2021 0:0014.12.2021 0:0012.12.2021 0:00268.666666666666666
2021Qtr 4Diciembre132Samoa AmericanaEQUIPODesarrollo personal12.12.2021 0:0014.12.2021 0:0013.12.2021 0:00268.666666666666666
2021Qtr 4Diciembre142Samoa AmericanaEQUIPODesarrollo personal12.12.2021 0:0014.12.2021 0:0014.12.2021 0:00268.666666666666666
2021Qtr 4Diciembre203BélgicaSAABApoyo al proyecto20.12.2021 0:0020.12.2021 0:0020.12.2021 0:0011
2021Qtr 4Diciembre204LuxemburgoMASIFormación / oficina20.12.2021 0:0020.12.2021 0:0020.12.2021 0:0044
2021Qtr 4Diciembre205BélgicaSAABFormación / remoto20.12.2021 0:0020.12.2021 0:0020.12.2021 0:0022
2021Qtr 4Diciembre206BélgicaSAABDemo / in situ20.12.2021 0:0020.12.2021 0:0020.12.2021 0:0011
2022Qtr 1Enero47LituaniaMASISoporte para socios4.1.2022 0:004.1.2022 0:004.1.2022 0:0011


También tengo una tabla de calendario personalizada ('Fecha') vinculada a mi tabla de datos ('DistiributedDates').

Estoy tratando de mostrar cómo el esfuerzo de trabajo (en %) difiere entre los períodos actuales y anteriores (Año, Trimestre, Mes, Día).
Este gráfico de barras a continuación es básicamente la visualización a la que aspiro, pero en lugar de mostrar el porcentaje de gran esfuerzo total de trabajo (de todos los datos), las barras deben mostrar el total visual, es decir, reaccionar a las segmentaciones de datos en la página y aún así proporcionar el 100%:

Minna_0-1642525105401.png


La cantidad de esfuerzo de trabajo que estoy usando como base está en la columna: 'Esfuerzo de trabajo distribuido (h)'
El gran total de trabajo de la ayuda se encuentra en la medida denominada 'EffortInHoursTotal':

EffortInHoursTotal = 
CALCULATE(
    SUM('demodata'[Work effort distributed (h)]),
     REMOVEFILTERS('demodata') 
    )


Tengo una medida que calcula el % de esfuerzo de trabajo

Effort (%) = 
DIVIDE(
     sum('demodata'[Work effort distributed (h)]),  
     [EffortInHoursTotal])


Luego tengo una medida que utiliza la medida anterior y calcula el esfuerzo de trabajo del período anterior .
Utiliza una solución dinámica de selección de período de tiempo que encontré en algún blog / video.

Previous Period Effort % = 
SWITCH(
    TRUE(),
    ISINSCOPE('Calendar'[Date].[Day]),
    CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, DAY)
    ), 
    ISINSCOPE('Calendar'[Date].[Month]),
    CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, MONTH)
    ), 
        ISINSCOPE('Calendar'[Date].[Quarter]),
    CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, QUARTER)
    ), 
        ISINSCOPE('Calendar'[Date].[Year]),
    CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, YEAR)
    )
)


Por lo que entiendo, estos cálculos básicos de % parecen funcionar bien (y en realidad se usan en el gráfico de barras anterior).
Pero como se ha dicho, no debo visualizar estos sino "visual total %'.

Entonces, a continuación he creado una medida para calcular el %total visual:

Effort % ALLSELECTED = 
DIVIDE(
[Effort (%)],
CALCULATE(
   [Effort (%)],
    ALLSELECTED( demodata )
))

No estoy seguro de si es perfecto, pero puedo mostrar esto en lo visual y reacciona a las cortadoras, mostrando todo el tiempo en total al 100%.

La medida que simplemente no puedo crear es mostrar el % total visual del período anterior.
Este intento muestra barras 100% para todos los períodos:

Previous Period Effort % ALLSELECTED = 

SWITCH(
    TRUE(),
    ISINSCOPE('Calendar'[Date].[Day]),   
    CALCULATE(
      [Effort % ALLSELECTED],
       DATEADD('Calendar'[Date].[Date], -1, DAY)
    ),
    ISINSCOPE('Calendar'[Date].[Month]), 
    CALCULATE(
        [Effort % ALLSELECTED],
         DATEADD('Calendar'[Date].[Date], -1, MONTH)
    ), 
    ISINSCOPE('Calendar'[Date].[Quarter]),
    CALCULATE(
      [Effort % ALLSELECTED],
       DATEADD('Calendar'[Date].[Date], -1, QUARTER)
    ), 
    ISINSCOPE('Calendar'[Date].[Year]),
    CALCULATE(
      [Effort % ALLSELECTED],
       DATEADD('Calendar'[Date].[Date],-1, YEAR)
    )
)


También intenté usar el cálculo del % de esfuerzo en VAR, pero esto ignora DATEADD:

Previous Period Effort % ALLSELECTED VAR = 

VAR _selectedDistribution = 
 [Effort (%)]/
CALCULATE(
     [Effort (%)],
    ALLSELECTED( demodata )
    ) 

RETURN

SWITCH(
    TRUE(),
    ISINSCOPE('Calendar'[Date].[Day]),   
    CALCULATE(
      _selectedDistribution,
        DATEADD('Calendar'[Date], -1, DAY)
    ),
    ISINSCOPE('Calendar'[Date].[Month]), 
    CALCULATE(
        _selectedDistribution ,
         DATEADD('Calendar'[Date], -1, MONTH)
    ), 
    ISINSCOPE('Calendar'[Date].[Quarter]),
    CALCULATE(
      _selectedDistribution,
        DATEADD('Calendar'[Date], -1, QUARTER)
    ), 
    ISINSCOPE('Calendar'[Date].[Year]),
    CALCULATE(
      _selectedDistribution,
        DATEADD('Calendar'[Date],-1, YEAR)
    )
)

Probablemente sea un problema de contexto, pero no entiendo qué y cómo solucionarlo.

Aquí hay una tabla con todas las medidas anteriores:

Minna_2-1642526967847.png

Espero que hayas entendido lo que estoy tratando de hacer aquí.

Realmente apreciaría su experiencia porque he estado luchando con esto un tiempo de looong ...


BR
Minna
pbix: Demo.pbix
https://www.dropbox.com/s/lj80e3wja9o5yhm/Demo.pbix?dl=0

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@Anonymous ,

De acuerdo con su muestra, puede ver, hay un valor total de Esfuerzo (%), pero no hay un valor total de Effor% del período anterior, es por eso que no puede usar directamente la fórmula a continuación como Esfuerzo % ALLSELECTED.

Previous Period Effort % ALLSELECTED= 
DIVIDE([Previous Period Effort %],CALCULATE([Previous Period Effort %],ALLSELECTED(demodata)))

vkalyjmsft_0-1642748014243.png

En cuanto a por qué no hay un valor total de Effor% del período anterior, porque la función ISINSCOPE en su fórmula, no hay una fecha en la fila total, por lo que se muestra en blanco.

Aquí está mi solución.

Previous Period Effort % = 
SWITCH(
    TRUE(),
    ISINSCOPE('Calendar'[Date].[Day])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, DAY))
    , 
    ISINSCOPE('Calendar'[Date].[Month])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, MONTH)
    ), 
    ISINSCOPE('Calendar'[Date].[Quarter])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, QUARTER)
    ), 
    ISINSCOPE('Calendar'[Date].[Year])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, YEAR))
    )
Previous Period Effort % ALLSELECTED= 
DIVIDE([Previous Period Effort %],CALCULATE([Previous Period Effort %],ALLSELECTED(demodata)))

Obtén el resultado.

vkalyjmsft_1-1642748822954.png

Adjunto mi muestra a continuación como referencia.

Saludos
Equipo de apoyo a la comunidad _ kalyj

Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@Anonymous ,

De acuerdo con su muestra, puede ver, hay un valor total de Esfuerzo (%), pero no hay un valor total de Effor% del período anterior, es por eso que no puede usar directamente la fórmula a continuación como Esfuerzo % ALLSELECTED.

Previous Period Effort % ALLSELECTED= 
DIVIDE([Previous Period Effort %],CALCULATE([Previous Period Effort %],ALLSELECTED(demodata)))

vkalyjmsft_0-1642748014243.png

En cuanto a por qué no hay un valor total de Effor% del período anterior, porque la función ISINSCOPE en su fórmula, no hay una fecha en la fila total, por lo que se muestra en blanco.

Aquí está mi solución.

Previous Period Effort % = 
SWITCH(
    TRUE(),
    ISINSCOPE('Calendar'[Date].[Day])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, DAY))
    , 
    ISINSCOPE('Calendar'[Date].[Month])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, MONTH)
    ), 
    ISINSCOPE('Calendar'[Date].[Quarter])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, QUARTER)
    ), 
    ISINSCOPE('Calendar'[Date].[Year])||[Effort % ALLSELECTED]=1,
     CALCULATE(
        [Effort (%)],
        DATEADD('Calendar'[Date].[Date], -1, YEAR))
    )
Previous Period Effort % ALLSELECTED= 
DIVIDE([Previous Period Effort %],CALCULATE([Previous Period Effort %],ALLSELECTED(demodata)))

Obtén el resultado.

vkalyjmsft_1-1642748822954.png

Adjunto mi muestra a continuación como referencia.

Saludos
Equipo de apoyo a la comunidad _ kalyj

Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Hola @v-kalyj-msft

Oh, qué solución tan inteligente, no habría descubierto esto yo mismo, ¡nunca!
¡Muchas gracias, eres brillante! 🙂

BR
Minna

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.