如何根据更改的开始日期获取周数?

问题描述 投票:0回答:1

我的 Power BI 报告中有一个表格,如下所示:

Date     | Offer | Offer_start | Offer_end |Offer_day
---------|-------|-------------|-----------|---------
15/03/24 |A      |15/03/24     |17/03/24   |1
16/03/24 |A      |15/03/24     |17/03/24   |2 
17/03/24 |A      |15/03/24     |17/03/24   |3
18/03/24 |B      |18/03/24     |20/03/24   |1

每天添加一个新行,其中“日期”列定义为当天。

Offer_day 列是一个计算列,定义如下:

Offer_day = datediff(mytable[Offer_start], mytable[Date], day)+1 

永远不应该有两个优惠同时有效。

我想添加一个列,标记每个日期的报价是在哪一周。但是,周数应定义为星期日至星期六。所以想要的结果应该是这样的:

Date     | Offer | Offer_start | Offer_end |Offer_day | Offer_week
---------|-------|-------------|-----------|----------|-----------
15/03/24 |A      |15/03/24     |17/03/24   |1         |1
16/03/24 |A      |15/03/24     |17/03/24   |2         |1
17/03/24 |A      |15/03/24     |17/03/24   |3         |2
18/03/24 |B      |18/03/24     |20/03/24   |1         |1

在 24 年 3 月 17 日,优惠周变为第 2 周,因为 24 年 3 月 17 日是星期日,即使优惠 A 仅在第三天。第二天,优惠周返回到第 1 周,因为这是新优惠的第一周。

请问有人知道怎么做吗?

powerbi dax
1个回答
0
投票

您需要计算优惠开始日期的周数和当前行日期的周数,以找出当前日期和优惠开始日期之间的周数差异。 如果没有差异或者当前日期与优惠开始在同一周,则返回 1。否则,它会根据您计算的差异增加周数。

Offer_week = 
VAR OfferStartWeek = WEEKNUM(mytable[Offer_start], 1) 
VAR CurrentDateWeek = WEEKNUM(mytable[Date], 1)
VAR WeekDifference = CurrentDateWeek - OfferStartWeek
RETURN IF(WeekDifference >= 0, WeekDifference + 1, 1)

© www.soinside.com 2019 - 2024. All rights reserved.