[英]need to find new rows based on the date with DAX in power BI
我需要根據“日期”計算“用戶”以查找新添加的用戶。 假設 2021 年 7 月 1 日是數據的起始日期。 樣本數據如:
user date count of login
a Thursday, July 1, 2021 10
b Thursday, July 1, 2021 5
c Thursday, July 1, 2021 4
d Thursday, July 1, 2021 1
e Thursday, July 1, 2021 1
a Saturday, July 10, 2021 5
b Saturday, July 10, 2021 10
c Saturday, July 10, 2021 2
g Saturday, July 10, 2021 5
h Saturday, July 10, 2021 4
g Monday, July 12, 2021 2
h Monday, July 12, 2021 2
i Monday, July 12, 2021 2
在這種情況下,output 應該如下所示:
Date count of new user
July 1, 2021 5
July 10, 2021 2
July 12, 2021 1
當用戶從未出現在所有以前的日期中時,以某種方式計算該用戶(或將第一次出現的用戶計為新用戶並忽略所有后續日期)
感謝您的幫助
我明白了,對於未來的用戶...... sheet1 是 excel 示例文件的名稱
VAR __CURRENT_VALUES = SUMMARIZE(VALUES('Sheet1'), 'Sheet1'[user])
VAR __EXISTING_VALUES =
CALCULATETABLE(
SUMMARIZE(VALUES('Sheet1'), 'Sheet1'[user]),
FILTER(
ALL('Sheet1'[date].[Date]),
'Sheet1'[date].[Date] < MIN('Sheet1'[date].[Date])
),
KEEPFILTERS(__CURRENT_VALUES)
)
RETURN
CALCULATE(
DISTINCTCOUNT('Sheet1'[user]),
EXCEPT(__CURRENT_VALUES, __EXISTING_VALUES)
)
請嘗試以下代碼
_newCustomers2 =
VAR _currentDate =
MAX ( 'fact'[date] )
VAR _distinctNewCount =
COUNTROWS (
EXCEPT (
VALUES ( 'fact'[user] ),
SUMMARIZE (
FILTER ( ALL ( 'fact' ), 'fact'[date] <_currentDate ),
'fact'[user]
)
)
)
RETURN
_distinctNewCount
如果您有如下表格
| user | date | Index |
|------|------------|-------|
| a | 2021-07-01 | 1 |
| b | 2021-07-01 | 2 |
| c | 2021-07-01 | 3 |
| d | 2021-07-01 | 4 |
| e | 2021-07-01 | 5 |
| a | 2021-07-10 | 6 |
| b | 2021-07-10 | 7 |
| c | 2021-07-10 | 8 |
| g | 2021-07-10 | 9 |
| h | 2021-07-10 | 10 |
| g | 2021-07-12 | 11 |
| h | 2021-07-12 | 12 |
| i | 2021-07-12 | 13 |
| a | 2021-07-12 | 14 |
| d | 2021-07-12 | 15 |
| e | 2021-07-12 | 16 |
| d1 | 2021-07-12 | 17 |
| e1 | 2021-07-12 | 18 |
| g | 2021-07-18 | 19 |
| h | 2021-07-18 | 20 |
| i | 2021-07-18 | 21 |
| a | 2021-07-18 | 22 |
| a1 | 2021-07-18 | 23 |
| a | 2021-07-19 | 24 |
| a1 | 2021-07-19 | 25 |
| c | 2021-07-19 | 26 |
這應該按要求工作。
New_User_Count =
VAR currentDate =
MAX ( 'Sheet1'[date] )
VAR preceedingDates = CALCULATETABLE(VALUES(Sheet1[date]),Sheet1[date] < currentDate)
VAR distinctNewCount =
COUNTROWS (
EXCEPT (
VALUES ( 'Sheet1'[user] ),
SUMMARIZE (
FILTER ( ALL ( 'Sheet1' ), 'Sheet1'[date] in preceedingDates ),
'Sheet1'[user]
)
)
)
RETURN distinctNewCount
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.