Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Dear Power BI Experts,
i have problems writing this dax formula. I want to group one table (FCT_CONTRACT_EMPLOYEE, first picture) by employee_id to get the average daily rate of an employee. This should be multiplied with planned_working_days in another table (FCT_TIME_PLANNING_EMPLOYEE_LEGACY, second picture) based on the lookup column employee_id.
Right now it looks like this. The error says i cant use "EmployeeAvgDailyRate" because a base table is expected instead, but i thought that SUMMARIZE function works like that:
Solved! Go to Solution.
You can't use LOOKUPVALUE with a variable, it has to be a base table. Try
Hochrechnung Plan-Werte =
SUMX (
FCT_TIME_PLANNING_EMPLOYEE_LEGACY,
VAR CurrentEmployee = FCT_TIME_PLANNING_EMPLOYEE_LEGACY[Employee ID]
VAR AvgDailyRate =
CALCULATE (
AVERAGE ( FCT_CONTRACT_EMPLOYEE[daily_rate] ),
TREATAS ( { CurrentEmployee }, FCT_CONTRACT_EMPLOYEE[employee_id] )
)
RETURN
FCT_TIME_PLANNING_EMPLOYEE_LEGACY[PLANNED_WORKING_DAYS] * AvgDailyRate
)
@Anonymous
Please try
Hochrechnung Plan-Werte =
SUMX (
VALUES ( FCT_CONTRACT_EMPLOYEE[employee_id] ),
CALCULATE ( AVERAGE ( FCT_CONTRACT_EMPLOYEE[daily_rate] ) )
* SUMX (
FILTER (
FCT_TIME_PLANNING_EMPLOYEE_LEGACY,
FCT_TIME_PLANNING_EMPLOYEE_LEGACY[EMPLOYEE_ID] = FCT_CONTRACT_EMPLOYEE[employee_id]
),
FCT_TIME_PLANNING_EMPLOYEE_LEGACY[PLANNED_WORKING_DAYS]
)
)
@Anonymous
Please try
Hochrechnung Plan-Werte =
SUMX (
VALUES ( FCT_CONTRACT_EMPLOYEE[employee_id] ),
CALCULATE ( AVERAGE ( FCT_CONTRACT_EMPLOYEE[daily_rate] ) )
* SUMX (
FILTER (
FCT_TIME_PLANNING_EMPLOYEE_LEGACY,
FCT_TIME_PLANNING_EMPLOYEE_LEGACY[EMPLOYEE_ID] = FCT_CONTRACT_EMPLOYEE[employee_id]
),
FCT_TIME_PLANNING_EMPLOYEE_LEGACY[PLANNED_WORKING_DAYS]
)
)
Hey, thanks a lot, it works fine! Using the FILTER function for the lookup and the VALUES function to calculate the average daily rate is a nice way to solve this problem!
You can't use LOOKUPVALUE with a variable, it has to be a base table. Try
Hochrechnung Plan-Werte =
SUMX (
FCT_TIME_PLANNING_EMPLOYEE_LEGACY,
VAR CurrentEmployee = FCT_TIME_PLANNING_EMPLOYEE_LEGACY[Employee ID]
VAR AvgDailyRate =
CALCULATE (
AVERAGE ( FCT_CONTRACT_EMPLOYEE[daily_rate] ),
TREATAS ( { CurrentEmployee }, FCT_CONTRACT_EMPLOYEE[employee_id] )
)
RETURN
FCT_TIME_PLANNING_EMPLOYEE_LEGACY[PLANNED_WORKING_DAYS] * AvgDailyRate
)
Hey john, thank you very much. The solution works perfectly fine, will look into the TREATAS Function for these kinds of problems more.
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
User | Count |
---|---|
42 | |
37 | |
22 | |
22 | |
21 |