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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
marcritchie
Frequent Visitor

Total acumulado basado en la fecha de finalización de la semana

Tengo un informe que incluye una tabla Fecha de informe conectada a una tabla que se actualiza semanalmente con datos que muestran las horas que se han reservado en un parte de horas.

Los datos del parte de horas incluyen una fecha de finalización del parte de horas, que es la fecha de finalización de la semana aplicable. Esto está conectado a la fecha completa en la tabla de fechas: a continuación, uso un filtro en el informe que usa la fecha de notificación > finalización de semana como filtro.

Para obtener un total acumulado para las horas basadas en el final de semana seleccionado por el usuario tengo esta medida:

Actual Booked Cumulative = 
CALCULATE (
    SUM ( Replicon[Actual Booked Period] ),
    FILTER (
        ALL ( 'Reporting Date'[Week Ending] ),
        'Reporting Date'[Week Ending] <= MAX ( 'Reporting Date'[Week Ending] )
    )
)

La medida funciona correctamente en la mayoría de los casos, pero he notado un comportamiento extraño cuando hay datos de horas en el futuro o más allá de la fecha final de fin de semana que está disponible para la presentación de informes. Si ese es el caso, da una cifra incorrecta sobre cualquier fecha de finalización de semana que seleccione y en la semana final terminando incluye datos para las fechas "futuras".

Podría filtrar los datos originales, pero prefiero hacerlos más robustos haciendo que la medida calcule correctamente en estos casos. ¿Alguien tiene alguna idea?

5 REPLIES 5
Greg_Deckler
Super User
Super User

@marcritchie - Usted debe ser capaz de hacer esto:

Actual Booked Cumulative = 
VAR __MaxReportingDate = MAXX(ALL('Reporting Date',[Week Ending])
RETURN
CALCULATE (
    SUM ( Replicon[Actual Booked Period] ),
    FILTER (
        ALL ( 'Reporting Date'[Week Ending] ),
        'Reporting Date'[Week Ending] <= MAX ( 'Reporting Date'[Week Ending] ) &&
          'Reporting Date'[Week Ending] <= __MaxReportingDate
    )
)

De lo contrario, tendría que ver los datos de ejemplo y el ejemplo del problema que está describiendo. No es realmente suficiente información para seguir adelante, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Gracias @Greg_Deckler por los enlaces, son realmente útiles y voy a utilizar ese formato cuando tengo que enviar cualquier otra consulta.

Encontré una solución alternativa a este problema filtrando todas las fechas futuras en ese campo de fecha en Transformar datos.

amitchandak
Super User
Super User

@marcritchie , En todos estos casos debe utilizar la tabla de fecha o semana y el intento con eso. También en caso de que tenga una fecha de uso de la fecha. Agrupación/Eje tomará el caso de la fecha del fin de semana

Acumulación reservada real ?
CALCULAR (
SUM ( Replicon[Período reservado real] ),
FILTRO (
ALL ( 'Fecha'[Fecha] ),
'Fecha de notificación'[Fin de semana] <- MAX ( 'Fecha'[Fecha] )
)
)

Gracias por la respuesta @amitchandak

Sólo para aclarar, en mi solución la tabla De fecha se llama Fecha de notificación.

La tabla de hechos se denomina Replicon e incluye la columna "Fecha de finalización de la hoja de horas".

Tengo una relación de uno a muchos establecida de 'Fecha de reporte'[Fecha] a 'Replicon'[Fecha de finalización de la hoja de horas]

Si entiendo correctamente, en ese caso mi fórmula debería ser:

Acumulación reservada real ?
CALCULAR (
SUM ( Replicon[Período reservado real] ),
FILTRO (
ALL ( 'Fecha de notificación'[Fecha] ),
'Replicon'[Fecha de finalización de la hoja de horas] <- MAX ( 'Fecha de notificación'[Fecha] )
)
)

Creo que el problema que estoy teniendo es que hay varias entradas para "Fecha de finalización de la hoja de horas" ya que hay varios jobID y DisciplineIDs para cada fecha según esta captura de pantalla, así que no puedo usar esa fórmula:

Screenshot 2020-09-07 at 15.10.54.png

¿Tengo que incorporar el jobId y DisciplineID en la fórmula también?

@marcritchie , ID de trabajo que necesita cuando utiliza el filtro de esta tabla y utiliza todo Replicon

Crear un tenue para DisciplineID y un filtro similar para él como fecha que debería funcionar

FILTRO (
ALL ( 'DisciplineID'[DisciplineID] ),
'DisciplineID'[DisciplineID] <- MAX ( 'DisciplineID'[DisciplineID] )
)

Otra opción final sabia es

Acumulación reservada real ?
CALCULAR (
SUM ( Replicon[Período reservado real] ),
FILTRO (
TODO ( 'RReplicon'),
'Replicon'[Fecha de finalización de la hoja de horas] <- MAX ( 'Replicon'[Fecha de finalización de la hoja de horas] ) &&
'Replicon'[jobId] á MAX ( 'Replicon'[jobId] ) &&
'Replicon'[DisciplineID] <- MAX ( 'Replicon'[DisciplineID] )
)
)

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors