如何解决PowerBI - 根据日期计算记录的属性
我有两个简单的表。我需要能够确定在特定日期(比如一月)谁是“新人”,然后只计算这些属性。名称上存在 1:M 关系。我基本上需要用以下数据回答以下问题:
登录表
ID | 姓名 | 日期 |
---|---|---|
登录1 | 山姆 | 一月 |
登录2 | 山姆 | 一月 |
登录3 | 戴夫 | 一月 |
登录4 | 戴夫 | 一月 |
登录5 | 杰克 | 一月 |
登录6 | 山姆 | 一月 |
登录7 | 詹姆斯 | 二月 |
登录8 | 詹姆斯 | 二月 |
登录9 | 詹姆斯 | 二月 |
登录10 | 山姆 | 二月 |
登录11 | 山姆 | 二月 |
登录12 | 史蒂夫 | 二月 |
联系表
姓名 | 家庭成员 | 孩子 | 成人 |
---|---|---|---|
山姆 | 3 | 1 | 2 |
詹姆斯 | 2 | 1 | 1 |
戴夫 | 4 | 2 | 2 |
杰克 | 1 | 0 | 1 |
史蒂夫 | 6 | 1 | 5 |
使用这些在 2 月过滤的数据,我们会看到 Steve 在该日期之前从未登录过,因此这使他成为“新人”。詹姆斯也是新来的。
我最接近的尝试是自定义“新个人计数”度量
VAR currentUsers = VALUES('Log-Ins'[Name])
VAR currentDate = MIN('Log-Ins'[Date])
VAR pastUsers = CALculaTETABLE(VALUES('Log-Ins'[Name]),ALL('Log-Ins'[Date].[Month],'Log-Ins'[Date].[MonthNo],'Log-Ins'[Date].[Year]),'Log-Ins'[Date]<currentDate)
VAR newUsers = EXCEPT(currentUsers,pastUsers)
RETURN COUNTROWS(newUsers)
正如你所看到的,这给了我新人的数量,但我想计算他们的属性来说明 :: 在 11 个家庭成员中,有 8 个是新人。在这 8 个中,6 个是成人,2 个是儿童。
解决方法
我可能在翻译中迷失了方向,但我不明白您希望如何准确地显示信息。
#ContactsWhoLoggedIN :=
CALCULATE(COUNTROWS(Contacts),FILTER(Contacts,CALCULATE(COUNTROWS(LogIN)>0)))
#NewCWhoLoggedIN :=
CALCULATE(COUNTROWS(Contacts),//LoggedIn in the Current Date Context
CALCULATE(COUNTROWS(LogIN))>0
&&
//Never LoogedIN before the Current Date Context
CALCULATE(COUNTROWS(LogIN),FILTER(ALL(Dates),Dates[Date]<MIN(Dates[Date])))=0
)
)
#CWhoLoggedBackIN := [#ContactsWhoLoggedIN]-[#NewCWhoLoggedIN]
#FM_NewCWLI :=
CALCULATE(SUM(Contacts[FamilyMembers]),Dates[Date]<MIN(Dates[Date])))=0
)
)
我记得“Microsoft Excel 2013:使用 PowerPivot 构建数据模型”中的这种模式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。