我有两张简单的桌子。我需要能够确定在特定日期(比如一月)谁是“新人”,然后只计算这些属性。名称上存在 1:M 关系。我基本上需要用以下数据来回答以下问题:
- 每月登录的家庭成员总数是多少?(使用自定义度量完成)
- 在#1 的总数中 - 有多少人是第一次登录?
- 在#2 的总数中 - 有多少是孩子?有多少是成年人?
登录表
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 月过滤的数据,我们会看到史蒂夫在该日期之前从未登录,因此这使他成为“新人”。詹姆斯也是新人。
我最接近的尝试是自定义的“新个体计数”度量
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 人是儿童。