[英]Rolling 4 week average conversion rate, in R or Power BI
我正在嘗試創建滾動的 4 周平均轉化率。 LTA 列是轉化率,等於 (Appts/Leads)。 現在,LTA 是一周一周的。 我需要創建一個 4 滾動轉換率的新列。 這是數據。
Week Leads Appts LTA
4/17/2022 205 83 40.49%
4/24/2022 126 68 53.97%
5/1/2022 117 40 34.19%
5/8/2022 82 38 46.34%
5/15/2022 60 32 53.33%
5/22/2022 45 19 42.22%
5/29/2022 25 19 76.00%
因此,如果我們從底部開始,5 月 29 日的 RollingAvg 將是 (19+19+32+38)/(25+45+60+82) = 50.943 %
對於 5 月 22 日這一周,數字將回滾一周,因此為 (19+32+38+0)/(45+60+82+117) = 29.276 %
幫助將不勝感激。
transform(data.frame(lapply(df, zoo::rollsum, k=4)), roll = Appts/Leeds * 100)
Leeds Appts roll
1 530 38 7.169811
2 385 70 18.181818
3 304 89 29.276316
4 212 108 50.943396
DAX 中計算列的簡單解決方案:
RollingAvg =
VAR _currentDate = [Week]
VAR _minDate = _currentDate - 4*7
RETURN
CALCULATE (
DIVIDE (
SUM ( 'Table'[Appts] ) ,
SUM ( 'Table'[Leads] )
),
// Lift filters on table to have all rows visible
ALL ( 'Table' ) ,
// Add constraints to dates for a 4-week average
'Table'[Week] <= _currentDate ,
'Table'[Week] > _minDate
)
或者更好的是,一種不占用數據模型空間的度量:
RollingAvgMeasure =
/*
Calculates the 4-week rolling average if used with the Week dimension.
Else calculates the total rolling average.
*/
VAR _currentDate = MAX ( 'Table'[Week] )
VAR _minDate = _currentDate - 4*7
VAR _movingAvg =
CALCULATE (
DIVIDE (
SUM ( 'Table'[Appts] ) ,
SUM ( 'Table'[Leads] )
),
ALL ( 'Table' ) ,
'Table'[Week] <= _currentDate ,
'Table'[Week] > _minDate
)
VAR _total = DIVIDE ( SUM ( 'Table'[Appts] ) , SUM ( 'Table'[Leads] ) )
RETURN
// Replace if-statement with only return of _movingAvg to display the latest 4-week value.
IF (
ISFILTERED ( 'Table'[Week] ),
_movingAvg ,
_total
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.