网站首页 > 知识剖析 正文
日期在数据分析中是个非常重要的维度,以前我们都是使用的自己用Excel建立的一张日期维度表,每次新建一个模型都需要导入、转换,然后才能使用,稍微有点麻烦。为了更方便快捷的使用日期维度表,我们可以通过CALENDAR函数直接创建一个日期表,然后还可以生成各种日期维度,后续有新建模型需求的时候,直接复制DAX语句就搞定了。
CALENDAR函数也属于日期和时间函数,作用是返回一个表,其中有一个包含一组连续日期的名为“Date”的列。日期范围从指定的开始日期到指定的结束日期,语法很简单,如下↓
CALENDAR(<start_date>, <end_date>)
我们先看看使用函数生成的表格结果,为了直观全面,我们就生成15天的数据,2021.8.11-2021.8.25号的数据,DAX语句和结果如下↓
15天日期表 = CALENDAR(DATE(2021,8,11),DATE(2021,8,25))
但如果只有日期这一列,这个日期维度表意义是不大的,所以我们还需要根据日期衍生出其他的维度,比如常用的年、月、日、季度、周,以及组合字段年月等等。有两种方式可以添加衍生列,一个是使用ADDCOLUMNS函数,另一种是使用VAR+RETURN语句实现,下面分别演示。
【使用ADDCOLUMNS函数】
ADDCOLUMNS函数的作用是将计算列添加到给定的表或表表达式,在这里就是根据日期列为基础,再添加其他列到日期维度表,我们先添加一个年列作为演示,DAX语句和结果如下↓
15天日期表 =
ADDCOLUMNS(
CALENDAR(DATE(2021,8,11),DATE(2021,8,25)),
"年份",YEAR([Date])&"年"
)
还是很简单,也可以使用FORMAT函数进行格式化取值,下面就把常用的日期维度加进来。具体每个日期函数可以参考上一篇,每个函数都有详细的说明,DAX语句和结果如下,这一条语句可以保存下来,后续直接作为日期维度表使用了,只需要改一下开始结束日期即可↓
15天日期表 =
ADDCOLUMNS(
CALENDAR(DATE(2021,8,11),DATE(2021,8,25)),
"年份",FORMAT([Date],"YYYY年"),
"季度",QUARTER([Date])&"季度",
"月份",FORMAT([Date],"MM月"),
"周",WEEKNUM([Date],2)&"周",
"天",FORMAT([Date],"D日"),
"星期",FORMAT([Date],"aaaa"),
"年季度",FORMAT([Date],"YYYY")&"-Q"&QUARTER([Date]),
"年月",FORMAT([Date],"YYYY-MM"),
"年周",FORMAT([Date],"YYYY")&"-W"&WEEKNUM([Date],2),
"月日",FORMAT([Date],"MM-DD"),
"年月日",FORMAT([Date],"YYYY-MM-DD")
)
【使用VAR+RETURN】
这种方式核心思想其实差不多,只是先定义我们需要的字段,然后把字段返回成每一列就可以了。
日期维度表15 =
VAR tdate = CALENDAR(DATE(2021,8,11),DATE(2021,8,25))
RETURN
GENERATE(
tdate,
VAR dtYear = FORMAT([Date],"YYYY年")
VAR dtquarter = QUARTER([Date])&"季度"
VAR dtmonth = FORMAT([Date],"MM月")
VAR dtweek = WEEKNUM([Date],2)&"周"
VAR dtday = FORMAT([Date],"D日")
VAR dtweekday = FORMAT([Date],"aaaa")
VAR dty_q = FORMAT([Date],"YYYY")&"-Q"&QUARTER([Date])
VAR dty_m = FORMAT([Date],"YYYY-MM")
VAR dty_w = FORMAT([Date],"YYYY")&"-W"&WEEKNUM([Date],2)
VAR dtm_d = FORMAT([Date],"MM-DD")
VAR dty_m_d = FORMAT([Date],"YYYY-MM-DD")
RETURN
ROW(
"年份",dtYear,
"季度",dtquarter,
"月份",dtmonth,
"周",dtweek,
"天",dtday,
"星期",dtweekday,
"年季度",dty_q,
"年月",dty_m,
"年周",dty_w,
"月日",dtm_d,
"年月日",dty_m_d
))
End
- 上一篇: Excel – 根据月份换算出季度,几种经典公式
- 下一篇: Excel表格技巧—如何快速转换日期格式
猜你喜欢
- 2024-12-14 FANUC系统时间如何来设定?教你用PMC窗口功能读取系统时间、日期
- 2024-12-14 Excel时间日期函数——DAYS360函数详解
- 2024-12-14 日期函数-Excel日期格式常用转换方法大全
- 2024-12-14 Excel表格技巧—如何快速转换日期格式
- 2024-12-14 Excel – 根据月份换算出季度,几种经典公式
- 2024-12-14 iPhone12和iPhone12Pro听筒无声音召回计划和序列号生产日期查询
- 2024-12-14 02-PMC生产计划工具箱-开工日期与完工日期二维排程
- 2024-12-14 Excel时间日期函数——DATEDIF函数详解
- 2024-12-14 EXCEL日期格式TETX函数合并,日期时间日期文本连接显示,赶紧GET
- 2024-12-14 linux——date命令
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)