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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Calcule los ingresos por mes en función del número de horas

Actualmente estoy trabajando en un problema que me dará el RevenuePerMonth correcto basado en el número de horas y días hábiles cada mes. Cada persona tiene un [dateBegin] y un [dateEnd] para cuando completará su trabajo con la empresa. A continuación, la fórmula me da los ingresos que genera esa persona por los meses restantes que tiene.

Computed Rev = VAR _Billablehours = [Forecast Workable Hours]
VAR _ClientBillRate = [clientBillRate]
VAR _CurrentMonth = DATE(YEAR(TODAY()), MONTH(TODAY()),1)
VAR EndDate = [dateEnd]
VAR BeginDate = [dateBegin]
VAR NumberWorkDays = CALCULATE( COUNTROWS('Date'), DATESBETWEEN('Date'[Date], _CurrentMonth, EndDate ), 'Date'[Weekday] = TRUE || 'Date'[Public Holidays] <> 0)

RETURN

IF ( ISBLANK (NumberWorkDays), 0, NumberWorkDays) * [hoursPerDay] * _ClientBillRate

Ahora, para encontrar el número de horas trabajables, utilizo la siguiente fórmula calculada a continuación. Lo que me da mi número de horas facturables y / o días facturables excluyendo fines de semana y días festivos.

Forecast Workable Hours = 
VAR _MonthStart = DATE(YEAR(TODAY()), MONTH(TODAY()),1)
VAR _MonthEnd = EOMONTH ( _MonthStart , 12 )
VAR _dateBegin = [dateBegin]
VAR _dateEnd = [dateEnd]
VAR _StartDate = IF ( _dateBegin >= _MonthStart , _dateBegin , _MonthStart )
VAR _EndDate = IF ( _dateEnd <= _MonthEnd , _dateEnd , _MonthEnd )
VAR _NumberWorkDays = CALCULATE( COUNTROWS('Date'), DATESBETWEEN('Date'[Date], _StartDate, _EndDate), 'Date'[Weekday] = TRUE || 'Date'[Public Holidays] <> 0)

RETURN 

IF ( ISBLANK (_NumberWorkDays), 0, _NumberWorkDays) * [hoursPerDay]

Mi problema es que necesito calcular para cada fila, los ingresos generados cada mes en función del número de días y / u horas viables para esa persona en función de su tarifa facturable. Sin embargo, la fórmula a continuación, desafortunadamente lo que está haciendo es dividir el número restante de meses para ese usuario y dividirlo, dándome los mismos ingresos cada mes, lo cual no es lo que quiero, ya que algunos meses tienen días / u horas más o menos viables.

RevenuePerMonth = 'Revenue'[Computed Rev]/(DATEDIFF(DATE(YEAR(TODAY()), MONTH(TODAY()),1), 'Revenue'[dateEnd],MONTH)+1)

Entonces, en lugar de que se vea así

LyonsBI_BRL_0-1636272506701.png

Necesita verse más como esto

LyonsBI_BRL_1-1636273462325.png

Sé que es posible solo necesito ayuda sobre cómo escribir esto en DAX. Cualquier ayuda sería muy apreciada.

¡Gracias!

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hay @LyonsBI_BRL

De su segunda imagen, RevenueforMonth = Horas trabajables * BillRate. Mientras que en la primera imagen, el [Pronóstico de horas trabajables] devuelve el mismo valor de 1400 en cada fila. ¿Está obteniendo el resultado correcto? Si [Forecast Workable Hours] ya devuelve el resultado correcto, ¿por qué no crear una columna calculada usando [Forecast Workable Hours] * [clientBillRate] para obtener el resultado esperado?

Saludos
Equipo de soporte de la comunidad _ Jing

Syndicate_Admin
Administrator
Administrator

@LyonsBI_BRL

debe tener esa columna en la tabla De Datedim. Cree uno y luego no obtendrá este error

Syndicate_Admin
Administrator
Administrator

@LyonsBI_BRL

CALCULATE('Revenue'[Computed Rev]/(DATEDIFF(DATE(YEAR(TODAY()), MONTH(TODAY()),1), 'Revenue'[dateEnd],MONTH)+1),
FILTER(ALL(DATESdim),VALUES(Month &YEar))

Pruebe esto

¿No parece estar funcionando o Valores está buscando una columna?

LyonsBI_BRL_0-1636347286858.png

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.

July Newsletter

Fabric Community Update - July 2024

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