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
AltusTellus
Helper III
Helper III

Cacular el valor entre fechas y valor sin fecha de finalización

Hola a todos

Estoy estrangulando con una fórmula DAX para calcular el valor de horas entre fechas en combinación con el valor de horas de una fecha de inicio.

Tengo dos tablas:

1. Horarios con columnas para la fecha de inicio y la fecha de finalización, ID de programación y horas promedio (por semana en realidad), denominadas "Programaciones". Así:

AverageHoursEnddateIdStartDate
40 100101-12-2019
4031-05-2020100201-06-2019
36 100301-05-2020

2. Y tengo una mesa con fechas, construir así, llamado 'SchedulesCalendar':

tb_SchedulesCalendar de la casa de los tb_SchedulesCalendar
ADDCOLUMNS(
CALENDAR( MIN( tb_Schedules[StartDate] ); MAX( tb_Schedules[EndDate] ) );
"Mes del Año"; FORMAT( [Fecha]; "mmm-ay" );
"Número del mes del año"; Año( [Fecha] ) * 100 + MES( [Fecha] )
No hay ninguna relación entre las dos tablas. Me gustaría crear una matriz como esta:
Id201906201907201908201909201910201911201912202001202002202003202004202005202006202007Etcétera
1001 4040404040404040
1002404040404040404040404040
1003 363636

Tengo la siguiente medida:

WorkingHours_v2 de la casa de los
VAR MinDate á MIN( 'tb_SchedulesCalendar'[Fecha] )
VAR MaxDate á MAX( 'tb_SchedulesCalendar'[Fecha] )
RETURN CALCULATE(SUM('tb_Schedules'[AverageHours]);
FILTRO(
tb_Schedules;
tb_Schedules[StartDate] <- MaxDate
&& tb_Schedules[EndDate] >
)
)
El resultado en la matriz es que solo tengo las programaciones con el promedio de horas por período de las programaciones con una fecha de finalización. ¿Cómo se ha cambiado la fórmula DAX, por lo que también veré los valores de las programaciones sin una fecha final?
De antemano muchas gracias! Y sí, si hay una sugerencia para calcular el promedio de horas por semana a un período de un mes, eres muy bienvenido.
Gr. Alfred
1 ACCEPTED SOLUTION

Hola @AltusTellus ,

Acabo de usar la medida que usted hizo, usted está sumando valores, dependiendo de los valores que tiene y el número de líneas que puede cambiar la SUMA para MIN, MAX o PROMEDIO.

Usando el MIN está dando el resultado correcto:

WorkingHours_v2 = 
VAR MinDate = MIN( 'tb_SchedulesCalendar'[Date] )
VAR MaxDate = MAX( 'tb_SchedulesCalendar'[Date] )
RETURN CALCULATE(MIN('tb_Schedules'[AverageHours]),
               FILTER(
               tb_Schedules,
               tb_Schedules[StartDate] <= MaxDate
                       && tb_Schedules[EndDate] >= MinDate || tb_Schedules[StartDate] <= MaxDate
                       
               )
)

Consulte Adjuntar archivo PBIX.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

4 REPLIES 4
MFelix
Super User
Super User

Hola @AltusTellus ,

SImply añadir el parímetro OR (o . . . . . . . . . . . . . . . . . . . . . . . . . . . . ) con sólo la fecha de inicio:

WorkingHours_v2 =
VAR MinDate =
    MIN ( 'tb_SchedulesCalendar'[Date] )
VAR MaxDate =
    MAX ( 'tb_SchedulesCalendar'[Date] )
RETURN
    CALCULATE (
        SUM ( 'tb_Schedules'[AverageHours] );
        FILTER (
            tb_Schedules;
            tb_Schedules[StartDate] <= MaxDate
                && tb_Schedules[EndDate] >= MinDate
                || tb_Schedules[StartDate] <= MaxDate
        )
    )

Comprobar conexión PBIX


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Hola @MFelix ,
Thnx para su respuesta, pero tengo otro problema después de usar la función OR como usted describió. El resultado es que un cronograma siguiente (por ejemplo, el mismo ID tiene un folower al principio de enero pero con 36 como número foor [AverageHours), cuenta el original [AvarageHours] con la programación de seguidores. Así:

Id201910201911201912202001
100240404076

Esto significa que en la matriz el resultado no es así:

Id201910201911201912202001
100240404036

¿Tiene una solución para este problema? Muchas gracias de nuevo.

Hola @AltusTellus ,

Acabo de usar la medida que usted hizo, usted está sumando valores, dependiendo de los valores que tiene y el número de líneas que puede cambiar la SUMA para MIN, MAX o PROMEDIO.

Usando el MIN está dando el resultado correcto:

WorkingHours_v2 = 
VAR MinDate = MIN( 'tb_SchedulesCalendar'[Date] )
VAR MaxDate = MAX( 'tb_SchedulesCalendar'[Date] )
RETURN CALCULATE(MIN('tb_Schedules'[AverageHours]),
               FILTER(
               tb_Schedules,
               tb_Schedules[StartDate] <= MaxDate
                       && tb_Schedules[EndDate] >= MinDate || tb_Schedules[StartDate] <= MaxDate
                       
               )
)

Consulte Adjuntar archivo PBIX.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



@MFelix ¡Gracias!

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