我正在努力完成某些事情,但不知道该怎么做。
我有一个Dimension(表称为TEntry),代表员工的时间条目,如:
Id | EmployeeId | EntryDT | TimeInMinutes | PriceAgreementId
------ | ---------- | ---------- | ------------- | ----------------
1 | 1 | 2017-03-20 | 100 | 1
2 | 1 | 2017-03-31 | 50 | null
3 | 2 | 2017-03-21 | 100 | 1
4 | 2 | 2017-03-23 | 125 | 2
5 | 3 | 2017-03-15 | 90 | null
6 | 3 | 2017-03-25 | 60 | 1
有时他们会在" PriceAgreements"上工作,有时他们不会。
在我的仪表板中,我有一个表,它将表TEntry分组为EmployeeId并对TimeInMinutes求和。我还有一个EntryDT切片器:
EmployeeId | TimeInMinutes
-------------- | -------------
1 | 150
2 | 225
3 | 150
我需要创建2个代表以下的新列:
表格看起来像这样(括号中没有PriceAgreementIds):
EmployeeId | TimeInMinutes | TimeInMinutes on PriceAgreements | TimeInMinutes on PriceAgreements ALL other EmployeeIds
-------------- | ------------- | -------------------------------- | ------------------------------------------------------
1 | 150 | 100 (PriceAgreementId=1) | 260 (PriceAgreementId=1)
2 | 225 | 225 (PriceAgreementId=1 and 2) | 385 (PriceAgreementId=1 and 2)
3 | 150 | 150 (PriceAgreementId=1) | 260 (PriceAgreementId=1)
Column" PriceAgreements" TimeInMinutes很容易,但另一个,我找不到解决方案......
我开始使用这个DAX表达式,但它不完整:
CALCULATE(SUM(TEntry[TimeInMinutes]), NOT ISBLANK(TEntry[PriceAgreementId]), ALL(TEmployee))
TEmployee是一个链接到主TEntry表的维度。
任何帮助将不胜感激。 谢谢
答案 0 :(得分:1)
我把它作为一个答案,因为(a)它可能让你(或其他人)朝着正确的方向前进,(b)如果它得到保证一个员工只会有2个价格协议的时间条目,这样就可以了 - 这对你来说不太可能,但对于其他人来说也可能就是这样。
Measure =
CALCULATE (
SUM ( TEntry[TimeInMinutes] ),
FILTER (
ALL ( TEntry ),
(
TEntry[PriceAgreementID] = MIN ( TEntry[PriceAgreementID] )
|| TEntry[PriceAgreementID] = MAX ( TEntry[PriceAgreementID] )
)
&& TEntry[PriceAgreementID] <> BLANK ()
)
)
此度量是:对于TEntry表中的所有记录,使用TimeInMinutes,其中PriceAgreementID与最小OR最大PriceAgreementID(在当前行的上下文中)匹配,而PriceAgreementID不是空白。
这个答案的致命缺陷是MIN和MAX。对于具有2个PriceAgreementID(1&amp; 2)的员工ID 2,MIN将计算PriceAgreementID 1的分钟数,MAX将计算PriceAgreementID 2的分钟数。但是,要扩展到可能超过2的情况PriceAgreements ...我不知道该怎么做。
但它确实适用于您问题中的示例数据(因为每位员工最多有2个价格协议):
通常,当我遇到这样的问题并不容易解决时,我会考虑我的数据模型,并确保它尽可能地符合星型模式。
在您的情况下,员工可以签订多个价格协议,价格协议可以与许多员工相关联。对我而言,这表明了一种多对多的关系。我强烈建议您阅读更多关于多对多关系的内容,以及重组基础表格(例如,包括桥接表)是否有助于您更接近所需的答案。
一个好的起点可能是:https://www.sqlbi.com/articles/many-to-many-relationships-in-power-bi-and-excel-2016/