Hi,
I have just made these 2 coloms but when entering the code for the last colom PBI gives me an error term saying I have insuffient memory.
I have all other programs closed and I had hoped my laptop has enough memory (4GB) to do most things in PBI.
Now I was hoping that someone could help me out to rewrite my code so that it takes less memory or some other tips to help me out.
PotentialBenefit =
VAR Hours= (Fct_TV[RemainingWorkHours] + Fct_TV[TotalHoursCumulative])
VAR Adv = Hours * RELATED(Dim_Benefit[PayoutPerHour])
RETURN
IF([BenefitByPerson] = RELATED(Dim_Benefit[MaxBenefit]) , 0 ,
IF( Adv >= RELATED(Dim_Benefit[MaxBenefit]) , RELATED(Dim_Benefit[MaxBenefit])-[BenefitByPerson],
IF( Adv <=0 , 0,
IF(Hours < RELATED(Dim_Benefit[Hourlimit]) , 0 ,
(Adv - [BenefitByPerson])
))))
RemainingWorkHours =
VAR Today= Today()
VAR CALC = (261-DATEDIFF(CONCATENATE("01-01-",Fct_TV[YEAR]),(Today-7),Day)*0.715)*8
RETURN
IF( CALC <0,0,CALC )
The code works on a dataset with less data.
The code PotentialBenefit lets me know how many subsidy when can get when a person works for us the remainder of the year.
However there are limit to this "MaxBenefit" and a person most work over more than a certain number of hours "Hourlimit" with Dim_Benefit containing about 30 different rows.
In FcT_TV it says who has worked x number of hours "TotalHoursCumulative" amongst many other items and also a calculation on how much subsidy we can already get for a person taken based on the last time we have data from him. The Calculation is called "BenefitByPerson"
BenefitByPerson =
CALCULATE( AVERAGE(Fct_TV[AchievedBenefit]),
FILTER(
Fct_TV,
Fct_TV[PeriodID] = CALCULATE( MAX( Fct_TV[PeriodID] ),
FILTER(
Fct_TV,
Fct_TV[CandidateID] = EARLIER( Fct_TV[CandidateID]) )
)))
I tried to translate the code to English to make it more readable.
Thanks to everyone trying to help in advance.