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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors