Power BI中按日期范围创建新列并分配对应标识的方法
在Power BI中创建符合规则的「Crawl_date 2」新列
需求说明
需要基于现有Crawl_date列生成新列Crawl_date 2,规则如下:
- 当
Crawl_date处于当月26日至次月5日区间时,输出格式为「月份缩写-A」(如12/28/2021对应Jan-A) - 当
Crawl_date处于当月12日至20日区间时,输出格式为「月份缩写-B」(如01/16/2022对应Jan-B)
解决方案:使用DAX创建计算列
- 在Power BI数据视图中选中目标数据表,点击顶部菜单栏的新建列
- 输入以下DAX表达式(注意将
'表名'替换为你的实际表名称):
Crawl_date 2 = VAR CurrentDay = DAY('表名'[Crawl_date]) VAR TargetMonth = IF(CurrentDay >= 26, DATEADD('表名'[Crawl_date], 1, MONTH), '表名'[Crawl_date]) RETURN SWITCH( TRUE(), CurrentDay >= 26 || CurrentDay <= 5, FORMAT(TargetMonth, "mmm") & "-A", CurrentDay >= 12 && CurrentDay <= 20, FORMAT('表名'[Crawl_date], "mmm") & "-B", BLANK() // 非上述区间的日期返回空值,可根据需求修改为其他内容 )
代码解释
CurrentDay:提取Crawl_date的日部分(如12/28/2021提取为28)TargetMonth:针对26日及以后的日期,自动切换到次月日期,确保生成正确的月份缩写(如12/28/2021对应2022年1月)SWITCH逻辑:- 优先判断是否在「当月26日-次月5日」区间,生成「次月缩写-A」
- 其次判断是否在「当月12日-20日」区间,生成「当月缩写-B」
- 其余日期返回空值,可根据业务需求调整为固定文本或其他标识
示例验证
输入表格:
| Craw_date | Seller A |
|---|---|
| 12/28/2021 | Harry |
| 12/29/2021 | Cat |
| 01/03/2022 | Harry |
| 01/04/2022 | Cat |
| 01/16/2022 | Harry |
| 01/16/2022 | Cat |
| 01/17/2022 | Harry |
| 01/18/2022 | Cat |
| 02/17/2022 | Harry |
| 02/18/2022 | Cat |
生成的输出表格:
| Craw_date | Seller A | Craw_date 2 |
|---|---|---|
| 12/28/2021 | Harry | Jan-A |
| 12/29/2021 | Cat | Jan-A |
| 01/03/2022 | Harry | Jan-A |
| 01/04/2022 | Cat | Jan-A |
| 01/16/2022 | Harry | Jan-B |
| 01/16/2022 | Cat | Jan-B |
| 01/17/2022 | Harry | Jan-B |
| 01/18/2022 | Cat | Jan-B |
| 02/17/2022 | Harry | Feb-B |
| 02/18/2022 | Cat | Feb-B |
内容的提问来源于stack exchange,提问作者harry
相关产品推荐
相关产品推荐

