Power Query 再谈日期表

168-0

Power Query 再谈日期表

需要附件的朋友可以点赞关注后,在公众号(焦棚子)后台回复 日期表 三个字即可领取。

一、背景

在 Power BI 或者 Power Pivot 做业务分析中,必不可少的就是日期表。我们继续优化调制出符合国人习惯日期表。

本次更新:

  • 增加农历信息

  • 增加日期状态判断,如下:

    • 假期
    • 周末
    • 补班
    • 工作日
  • 字段名称可以自由选择是否增加序号。

  • 增加周、月、季度、半年度、年度的时间进度信息。详见 40 至 54 编号字段。

168-1

168-2

二、字段明细

字段示例说明
C00_Dates2023/1/1日期
C01_Day1日期天
C02_WeekDay6周几数字,周一为:0,周日为:6
C03_WeekCNS1周几中文简写1字
C04_WeekCNS3星期日周几中文简写3字
C05_WeekENS1S周几英文简写1字
C06_WeekENS3Sun周几英文简写3字
C07_WeekENSunday周几英文
C08_WeekIndex6418周索引:1900-1-1,星期一,第1周
C09_WeekNumber1周一开始的一年中第几周
C10_WeekW01周的W简写
C11_YearWeekY23W01年周组合
C12_Month1月份数字
C13_MonthMM01月份M简写
C14_MonthCN一月月份中文
C15_MonthENS3Jan月份英文简写3字
C16_MonthENJanuary月份英文
C17_YearMonthMY23M01年月M简写
C18_YearMonthUSJan-23年月英文简写
C19_YearMonth202301年月数字组合
C20_Quarter1季度数字
C21_QuarterQQ1季度Q简写
C22_YearQuarterQY23Q1年季度Q简写
C23_YearQuarter202301年季度数字组合
C24_HalfOfYearCN上半年中文半年度
C25_HalfOfYearENH1半年度H简写
C26_YearHalfY23H1年度季度简写组合
C27_Year2023年度数字
C28_FY00FY23年度FY简写
C29_FYFYFY:全年的意思,与月度等同维度辅助字段
C30_StartOfWeek2022/12/26C01_Dates对应周开始的日期
C31_StartOfMonth2023/1/1C01_Dates对应月开始的日期
C32_StartOfQuarter2023/1/1C01_Dates对应季度开始的日期
C33_StartOfHalfYear2023/1/1C01_Dates对应半年度开始的日期
C34_StartOfYear2023/1/1C01_Dates对应年度开始的日期
C35_EndOfWeek2023/1/1C01_Dates对应周结束的日期
C36_EndOfMonth2023/1/31C01_Dates对应月结束的日期
C37_EndOfQuarter2023/3/31C01_Dates对应季度结束的日期
C38_EndOfHalfYear2023/6/30C01_Dates对应半年度结束的日期
C39_EndOfYear2023/12/31C01_Dates对应年度结束的日期
C40_DayOfWeek7C01_Dates对应的周的当前累计天数
C41_DayOfMonth1C01_Dates对应的月的当前累计天数
C42_DayOfQuarter1C01_Dates对应的月的当前累计天数
C43_DayOfHalfYear1C01_Dates对应的半年度的当前累计天数
C44_DayOfYear1C01_Dates对应的年度的当前累计天数
C45_DaysOfWeek7C01_Dates对应的周的总计天数
C46_DaysOfMonth31C01_Dates对应的月的总计天数
C47_DaysOfQuarter90C01_Dates对应的季度的总计天数
C48_DaysOfHalfYear181C01_Dates对应的半年度的总计天数
C49_DaysOfYear365C01_Dates对应的年度的总计天数
C50_ProgressOfWeek100.0%C01_Dates对应的周的日期进度百分比
C51_ProgressOfMonth3.2%C01_Dates对应的月的日期进度百分比
C52_ProgressOfQuarter1.1%C01_Dates对应的季度的日期进度百分比
C53_ProgressOfHalfYear0.6%C01_Dates对应的半年度的日期进度百分比
C54_ProgressOfYear0.3%C01_Dates对应的年度的日期进度百分比
C55_Holiday元旦节假期名称
C56_Animal年份属相
C57_LunarDateCN初十C01_Dates对应的中文农历日期
C58_LunarMonthCNC01_Dates对应的中文农历月份
C59_LunarDate10C01_Dates对应的农历日期数字
C60_LunarMonth12C01_Dates对应的农历月份数字
C61_LunarYear2022C01_Dates对应的农历年数字
C62_Status假期日期状态包含:假期、周末、补班、工作日。

三、前 10 行示例

C00_DatesC01_DayC02_WeekDayC03_WeekCNS1C04_WeekCNS3C05_WeekENS1C06_WeekENS3C07_WeekENC08_WeekIndexC09_WeekNumberC10_WeekC11_YearWeekC12_MonthC13_MonthMC14_MonthCNC15_MonthENS3C16_MonthENC17_YearMonthMC18_YearMonthUSC19_YearMonthC20_QuarterC21_QuarterQC22_YearQuarterQC23_YearQuarterC24_HalfOfYearCNC25_HalfOfYearENC26_YearHalfC27_YearC28_FY00C29_FYC30_StartOfWeekC31_StartOfMonthC32_StartOfQuarterC33_StartOfHalfYearC34_StartOfYearC35_EndOfWeekC36_EndOfMonthC37_EndOfQuarterC38_EndOfHalfYearC39_EndOfYearC40_DayOfWeekC41_DayOfMonthC42_DayOfQuarterC43_DayOfHalfYearC44_DayOfYearC45_DaysOfWeekC46_DaysOfMonthC47_DaysOfQuarterC48_DaysOfHalfYearC49_DaysOfYearC50_ProgressOfWeekC51_ProgressOfMonthC52_ProgressOfQuarterC53_ProgressOfHalfYearC54_ProgressOfYearC55_HolidayC56_AnimalC57_LunarDateCNC58_LunarMonthCNC59_LunarDateC60_LunarMonthC61_LunarYearC62_Status
2023/1/116星期日SSunSunday64181W01Y23W011M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2022/12/262023/1/12023/1/12023/1/12023/1/12023/1/12023/1/312023/3/312023/6/302023/12/31711117319018136510.0322580650.0111111110.0055248620.002739726元旦节初十10122022假期
2023/1/220星期一MMonMonday64192W02Y23W021M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/22023/1/12023/1/12023/1/12023/1/12023/1/82023/1/312023/3/312023/6/302023/12/3112222731901813650.1428571430.0645161290.0222222220.0110497240.005479452十一11122022假期
2023/1/331星期二TTueTuesday64192W02Y23W021M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/22023/1/12023/1/12023/1/12023/1/12023/1/82023/1/312023/3/312023/6/302023/12/3123333731901813650.2857142860.0967741940.0333333330.0165745860.008219178十二12122022工作日
2023/1/442星期三WWedWednesday64192W02Y23W021M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/22023/1/12023/1/12023/1/12023/1/12023/1/82023/1/312023/3/312023/6/302023/12/3134444731901813650.4285714290.1290322580.0444444440.0220994480.010958904十三13122022工作日
2023/1/553星期四TThuThursday64192W02Y23W021M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/22023/1/12023/1/12023/1/12023/1/12023/1/82023/1/312023/3/312023/6/302023/12/3145555731901813650.5714285710.1612903230.0555555560.0276243090.01369863十四14122022工作日
2023/1/664星期五FFriFriday64192W02Y23W021M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/22023/1/12023/1/12023/1/12023/1/12023/1/82023/1/312023/3/312023/6/302023/12/3156666731901813650.7142857140.1935483870.0666666670.0331491710.016438356十五15122022工作日
2023/1/775星期六SSatSaturday64192W02Y23W021M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/22023/1/12023/1/12023/1/12023/1/12023/1/82023/1/312023/3/312023/6/302023/12/3167777731901813650.8571428570.2258064520.0777777780.0386740330.019178082十六16122022周末
2023/1/886星期日SSunSunday64192W02Y23W021M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/22023/1/12023/1/12023/1/12023/1/12023/1/82023/1/312023/3/312023/6/302023/12/31788887319018136510.2580645160.0888888890.0441988950.021917808十七17122022周末
2023/1/990星期一MMonMonday64203W03Y23W031M01一月JanJanuaryY23M01Jan-232023011Q1Y23Q1202301上半年H1Y23H12023FY23FY2023/1/92023/1/12023/1/12023/1/12023/1/12023/1/152023/1/312023/3/312023/6/302023/12/3119999731901813650.1428571430.2903225810.10.0497237570.024657534十八18122022工作日

请关注


微信、知乎、B站、CSDN、博客园

同名搜索 焦棚子

如果对你有帮助,请 点赞关注三连 支持一下,这是我们更新的动力。

by 焦棚子

### 使用 Power QueryPower BI 中创建日期表 #### 创建日期表的方法概述 为了在 Power BI 中使用 Power Query 创建日期表,可以采用多种方法。其中一种常见且高效的方式是在 Power Query 编辑器中直接生成日期列并构建完整的日期维度表格[^2]。 #### 步骤说明 ##### 打开 Power Query 编辑器 启动 Power BI Desktop 后,点击左侧导航栏中的“Transform Data”,这会打开 Power Query 编辑器窗口。 ##### 添加自定义函数来生成日期范围 可以通过编写 M 语言代码来自动生成一系列连续的日期作为基础数据集: ```m let StartDate = #date(2023, 1, 1), EndDate = DateTime.Date(DateTime.LocalNow()), Source = List.Dates(StartDate, Duration.Days(EndDate - StartDate)+1, #duration(1, 0, 0, 0)), TableFromList = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error), ChangedType = Table.TransformColumnTypes(TableFromList ,{{"Column1", type date}}) in ChangedType ``` 这段代码实现了从指定起始年份的第一天直到当前系统的今天为止的所有日期列表,并将其换成表格形式以便后续操作[^1]。 ##### 增加辅助字段以增强分析能力 为了让这个日期表更加实用,在上述基础上还可以继续添加更多有用的属性列,比如月份名称、季度编号等。这些新增字段有助于更细致的数据分组与聚合计算: ```m // 继续上面的例子... AddColumns = Table.AddColumn(ChangedType,"Year",[each Date.Year([Column1])]), AddMonthName = Table.AddColumn(AddColumns ,"Month Name",[each Date.ToText([Column1],"MMMM")]), AddQuarterOfYear = Table.AddColumn(AddMonthName,"Quarter of Year",[each "Q" & Number.ToText(Date.QuarterOfYear([Column1]))]) ``` 完成以上步骤之后,关闭并应用更改即可成功建立一张包含丰富时间信息的标准日期维表供报表设计时选用[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值