我有三个桌子
费率:
Rate ID, Rate, Per Hour
1, A, 10
2, B, 20
3, C, 30
工作人员
Staff ID, Name, Rate
1, Bob, A
2, Fred, B
3, Shelly, C
4, George, C
时间表
Timesheet ID, Staff ID, Hours
1, 1, 30
2, 2, 30
3, 2, 30
4, 1, 60
5, 3, 30
6, 4, 60
我正在使用
Total Hours worked =
CALCULATE (
SUM ( Timesheet[Hours] ),
FILTER ( ALL ( 'Timesheet' ), 'Timesheet'[Staff ID] = Staff[Staff ID] )
)
查询我的时间并总计
我正在尝试从费率表中查找费率
Rate Per Hr = LOOKUPVALUE(Rates[ Per Hour],Rates[Rates],Staff[Rate])
但是我收到有关单个值的错误。不知道我在这件事上做错了什么!有什么帮助吗?我已经使用PowerBI大约两天了,但并没有做很多DAX。
坦率地说,我不需要从“费率”中复制表中的数据,只需执行计算即总工作小时数*每小时费率
答案 0 :(得分:0)
Gah
度量= sumx('Staff','Staff'[总工作时间] *相关('Rates'[每小时]))
答案 1 :(得分:0)
我猜有两种可能的方式。首先是使用人员表中的计算列来计算组件,然后计算总费率*工作小时数。
Rate per Hour =
CALCULATE (
SUM ( Rates[Per Hour] ) ;
FILTER( ALL( Rates ) ; Staff[Rate] = Rates[Rate] )
)
和
Hours worked =
CALCULATE (
SUM ( Timesheet[Hours] ) ;
FILTER ( ALL ( 'Timesheet' ) ; 'Timesheet'[Staff ID] = Staff[Staff ID] )
)
产生
Total = Staff[Hours worked] * Staff[Rate per Hour]
另一个选择(我的偏爱)是使用度量,并使用迭代器SUMX强制行上下文。如以下示例所示,您可以选择分为三项措施或将全部措施分组为一类
Total =
SUMX (
Staff ;
var _hoursWorked =
CALCULATE (
SUM ( Timesheet[Hours] ) ;
FILTER ( ALL ( 'Timesheet' ) ; 'Timesheet'[Staff ID] = Staff[Staff ID] )
)
var _ratePerHr =
CALCULATE (
SUM ( Rates[Per Hour] ) ;
FILTER( ALL( Rates ) ; Staff[Rate] = Rates[Rate] )
)
RETURN
_ratePerHr * _hoursWorked
)