PowerBI技巧之函数周期表丨时间智能丨表丨 DATESBETWEEN
PowerBI 中的函数日期表

PowerBI 中的函数日期表在PowerBI中,日期表的问题是始终都无法绕过的一个问题,首先是微软默认的日期表月份显示如下:可能这种形式我们自己看起来没啥的,但是要考虑做出来的可视化报表呈现的对象绝对不仅仅是自己,那么就需要我们自己来制作自己的日期维度表。
太多方法就不说了,这里提供两种方法大家参考:一、M函数:1、在PQ编辑器界面,左边查询的位置,点击鼠标右键,新建空白查询:2、点击操作界面的上方的高级属性编辑器:3、将查询里面所有的内容清空,复制下面这段代码进去:letCalendarType = type function (optional CalendarYearStart as (type number meta [Documentation.FieldCaption = "开始年份,日期表从开始年份1月1日起。
",Documentation.FieldDescription = "日期表从开始年份1月1日起",Documentation.SampleValues = { Date.Year( DateTime.LocalNow( ) ) - 1 } // Previous Year]),optional CalendarYearEnd as (type number meta [Documentation.FieldCaption = "结束年份,日期表至结束年份12月31日止。
",Documentation.FieldDescription = "日期表至结束年份12月31日止",Documentation.SampleValues = { Date.Year( DateTime.LocalNow( ) ) } // Current Year]),optional CalendarFirstDayOfWeek as (type text meta [Documentation.FieldCaption = "定义一周开始日,从 Monday,Tuesday,Wednesday,Thursday,Friday, Documentation.FieldDescription = "从 Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, Documentation.SampleValues = { "Monday" }]),optional CalendarCulture as (type text meta [Documentation.FieldCaption = "指定日期表显示月以及星期几的名称是中文或英文,en 表示英文,zh 表示中 Documentation.FieldDescription = " en 表示英文,zh 表示中文,缺省默认与系统一致。
PowerBI技巧之函数 DATESMTD_QTD_YTD

函数周期表丨时间智能丨表丨 DATESMTD/QTD/YTDDATESMTD函数/DATESQTD函数/DATESYTD函数DATESMTD函数,DATESQTD函数与DATESYTD函数三者都隶属于“时间智能函数”,属于“表”函数。
因为三者的用途、语法结构基本上是类似的,白茶决定一起打包带走。
用途1:用于返回一张表,表中的日期列分别是月份至今、季度至今、年度至今。
用途2:可以用来计算累计值。
月份累计,季度累计,年度累计。
语法语法1:月累计语法=DATESMTD(<日期>)语法2:季度累计语法=DATESQTD(<>)日期语法3:年度累计语法=DATESYTD(<>,<可选项>)日期参数日期:三者最基本的参数都是第一参数,只有年度累计有第二参数。
第一参数可以是固定的日期列,也可以是日期的表达式。
可选项:这个选项只有年度累计才有,可以用来定义截止日期,默认不填为12月31日。
返回结果单列日期表。
示例示例文件:这是白茶随机模拟的数据。
例子1:DATESMTD基本用法 = DATESMTD ( '示例'[日期] )结果:因为数据原因,最大月份为2月,所以返回结果为默认2月1日至最大日期。
例子2:DATESQTD 基本用法 =DATESQTD ( '示例'[日期] )结果:返回本季度截止到最新日期2月11日的数据。
原理同上。
例子3:DATESYTD 基本用法 =DATESYTD ( '示例'[日期] )结果:默认不填第二参数,返回值结果为本年度第一天截止到最大日期的结果。
例子4:DATESYTD 基本用法2 =DATESYTD ( '示例'[日期], "2-10" )结果:因为第二参数白茶定义了截止日期是2月10日,那么本年度的初始日期即为2月11日,所以返回结果为从2月11日到次年2月10日的所有日期数据。
PowerBI中的时间智能如何利用日期表和时间轴

PowerBI中的时间智能如何利用日期表和时间轴随着大数据时代的到来,数据分析和可视化成为了现代企业中不可或缺的重要环节。
PowerBI作为一款功能强大的商业智能工具,为用户提供了丰富的数据处理和展示功能。
其中,时间智能功能使得数据的分析和可视化更加便捷和直观。
本文将介绍PowerBI中时间智能的核心组成部分:日期表和时间轴,以及它们如何协同工作来实现更高效的数据分析。
一、日期表的作用和构建日期表是PowerBI中非常重要的一个概念,它提供了时间维度的详细信息,使得分析人员可以根据时间粒度对数据进行聚合和展示。
日期表的构建方式多种多样,常见的方法有手动创建、自动生成和导入外部数据等。
1. 手动创建日期表手动创建日期表是最为直观和灵活的方式,可以根据实际需求自定义日期范围和维度。
在PowerBI的“数据”视图中,用户可以使用“新建表”功能手动创建日期表,并添加相关的日期字段,如“年份”、“季度”、“月份”、“日期”等。
手动创建日期表需要一定的时间和经验,但是可以更好地满足个性化的数据分析需求。
2. 自动生成日期表PowerBI提供了自动生成日期表的功能,用户只需在数据模型中选择一个包含日期字段的表格,点击右键并选择“自动生成日期表”,就可以快速生成一个默认的日期表。
自动生成日期表可以减少手动创建的工作量,但是可能无法满足特定的需求,需要在后续操作中进行自定义。
3. 导入外部数据除了手动创建和自动生成日期表外,用户还可以通过导入外部数据的方式创建日期表。
例如,从Excel或CSV文件中导入一个已经包含日期信息的表格,然后根据需要进行字段的调整和变换。
导入外部数据可以灵活地处理不同格式和来源的日期数据,但是需要确保导入的数据准确无误。
二、时间轴的使用和配置日期表提供了时间维度的数据,而时间轴则是展现时间维度的重要工具。
PowerBI的时间轴功能可以根据用户的需求对数据进行过滤和聚合,方便用户快速查看和对比不同时间段的数据情况。
PowerBI技巧之函数周期表丨时间丨值丨 DATEDIFF

函数周期表丨时间丨值丨 DATEDIFFDATEDIFF函数语法=DATEDIFF(<开始日期>, <结束日期>, <间隔单位>)DATEDIFF函数属于“值函数”之一。
可能很多小伙伴平常并没有注意到这个函数,但是这却是一个很有用的函数。
假如:一个事实表,有两个日期列,分别代表下单日期,出货日期,我想知道这期间的时间间隔,用DATEDIFF函数就可以轻松搞定。
参数第一参数:开始日期。
一个返回具体日期的表达式,或者标量值。
如果返回结果是多个的话,在没有进行处理的情况下这个函数返回结果会有误差。
第二参数:结束日期。
一个返回具体日期的表达式,或者标量值。
如果返回结果是多个的话,在没有进行处理的情况下这个函数返回结果会有误差。
需要注意:结束日期不能大于开始日期,否则返回错误。
第三参数:间隔单位,说白了就是你想求两个日期是差了多少天、几个月、几个季度、多少个小时等等。
可选项有:SECOND(秒),MINUTE(分钟),HOUR(小时),DAY(天),WEEK(周),MONTH(月),QUARTER(季度),YEAR(年)。
返回结果一个标量值,一组时间间隔的数字。
应用例子输入以下日期作为示范:DATEDIFF函数 =CALENDAR ( DATE ( 2018, 11, 1 ), DATE ( 2019, 11, 15 ) )白茶决定使用这组日期作为DATEDIFF 函数的示例。
示例1:DATEDIFF 示例1—DAY 选项 =DATEDIFF ( MIN ( 'DATEDIFF 函数'[Date] ), MAX ( 'DATEDIFF 函数'[Date] ), DAY )结果如下:两个日期间隔天数为379天。
示例2:DATEDIFF示例2—HOUR选项 =DATEDIFF ( MIN ( 'DATEDIFF函数'[Date] ), MAX ( 'DATEDIFF函数'[Date] ), HOUR )结果如下:两个日期间隔小时为379*24=9096个小时。
powerbi 表函数

powerbi 表函数
PowerBI表函数是一种强大的功能,可以帮助用户在表中执行各种操作。
这些函数可以用于创建新列、过滤数据、聚合数据等。
以下是一些常用的PowerBI表函数:
1. ADDCOLUMNS函数:用于向现有表中添加计算列。
2. FILTER函数:用于根据指定条件过滤数据。
3. CALCULATE函数:用于创建强大的计算,可以在当前过滤器上下文中对数据进行聚合。
4. SUMMARIZE函数:用于根据指定列对数据进行汇总。
5. DISTINCT函数:用于返回指定列中不同的值。
6. RANKX函数:用于根据指定列对数据进行排名。
使用这些函数可以更轻松地处理PowerBI表中的数据,从而使数据分析更加有效和高效。
- 1 -。
PowerBI技巧之函数周期表丨时间智能丨表丨 DATESINPERIOD

函数周期表丨时间智能丨表丨 DATESINPERIODDATESINPERIOD函数DATESINPERIOD函数隶属于“时间智能函数”,属于“表”函数。
这个函数的功能很强大,用途方面也是比较广泛的。
用途1:可以用来返回固定的日期值。
用途2:可以用来算移动平均。
用途3:可以算固定日期内的累计值。
语法DAX=DATESINPERIOD(<日期列>,<开始日期>,<移动间隔>,<粒度>)参数日期列:包含日期的列。
开始日期:日期表达式作为初始日期。
移动间隔:正数向后平移,负数向前平移,遵守四舍五入。
粒度:年/季度/月/日。
返回结果一个包含日期列的表。
示例示例文件:这是白茶随机模拟的数据,这里不做过多的赘述。
例子1:DATESINPERIOD 函数例子1 =DATESINPERIOD ( '示例'[日期], MAX ( '示例'[日期] ), -7, DAY )返回结果为最大日期往前算7天的日期。
例子2:DATESINPERIOD函数例子2 =DATESINPERIOD ( '示例'[日期], MIN ( '示例'[日期] ), -7, DAY )返回结果为最小日期。
这里就涉及到DATESINPERIOD这个函数的注意点了:返回的日期如果在原表中没有的话,那么呈现的结果就是原表日期值的最大值/最小值。
也就是你想返回的范围必须在原表范围内。
例子3:DATESINPERIOD例子3 =AVERAGEX (DATESINPERIOD ( '示例'[日期], MAX ( '示例'[日期] ), -7, DAY ),CALCULATE ( SUM ( '示例'[销售] ) ))结果:这组代码返回的结果为近7日的销售平均值。
之前白茶写过移动平均的文章,这里就不赘述了,感兴趣的小伙伴可以翻翻往期文章。
PowerBI技巧之PowerBI-时间智能函数-ENDOF系列

一、ENDOFYEAR
释义:返回当前上下文中指定日期列的年份的最后一个日期
语法:ENDOFYEAR(日期,[年末日期])
参数:
第一参数:包含日期的列
第二参数:可选,带有日期的文本字符串,用于定义年末日期。
默认值为 12 月 31 日
备注:
日期参数可以是以下任一项:
对日期/时间列的引用
返回单列日期/时间值的表表达式
定义日期/时间值的单列表的布尔表达式
年末日期参数是日期的字符串文本,采用的区域设置与创建工作簿的客户端的区域设置相同。
日期的年份部分会被忽略示例:返回截至3月30日的会计年度结束时间
ENDOFYEAR(DateTime[DateKey],"03/30/2004")
二、ENDOFQUARTER
释义:为指定的日期列返回当前上下文的季度最后一日
语法:ENDOFQUARTER(日期)
参数:
第一参数:包含日期的列
备注:
日期参数可以是以下任一项:。
PowerBI技巧之PowerBI-时间智能函数-PARALLELPERIOD

PARALLELPERIOD
释义:返回一个表,此表包含一列日期,表示与当前上下文中指定的 dates 列中的日期平行的时间段,日期是按间隔数向未来推移或者向过去推移的
语法:PARALLELPERIOD(日期,间隔数,间隔类型)
参数:
第一参数:包含日期的列
第二参数:一个整数,指定要添加到日期或从日期中减去的时间间隔数
第三参数:日期偏移的间隔。
可以是以下值之一:year\quarter\month
备注:
此函数获取由 dates 指定的列中的当前日期集,将第一个日期和最后一个日期移动指定的间隔数,然后返回两个移动日期之间的所有连续日期。
如果间隔是月份、季度或年份的部分范围,那么结果中的任何部分月份也将被填充以完成整个时间间隔
dates 参数可以是以下任一项:
对日期/时间列的引用
返回单列日期/时间值的表表达式
定义日期/时间值的单列表的布尔表达式
如果为间隔数指定了正数,则日期向未来推移;如果指定的数字为负数,则日期向过去推移
PARALLELPERIOD 函数类似于 DATEADD 函数,只是 PARALLELPERIOD 总是返回在给定粒度级别处的完整周期,而不是 DATEADD 返回的部分周期。
例如,如果你选择了从 6 月 10 日开始并在同年 6 月 21 日结束的日期,并且想。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例子 示例文件:
为了准确表达DATESBETWEEN函数的用法,白茶随机模拟了一份数据。 例子1:
而DATESBETWEEN函数只考虑节点和事实。 就像上面这段代码,4月1日到6月30日连续的话有将近90个固定日期,但是实际事实表只有三个固定值,那么结果就是这个节点
范围内பைடு நூலகம்事实情况。
例子2:
DATESBETWEEN函数例子2 = VAR TP =
DATESBETWEEN ( '例子'[日期], DATE ( 2019, 5, 1 ), DATE ( 2019, 10, 1 ) ) RETURN
这些情况都是需要DATESBETWEEN函数的,当然,还有其他办法,只不过DATESBETWEEN函数相对简单,可以作为过渡使
用。 语法
DAX= DATESBETWEEN(<日期列>,<开始日期>,<结束日期>)
参数 日期列:对日期列的引用。 开始日期:可以是固定日期,也可以是日期表达式。 结束日期:可以是固定日期,也可以是日期表达式。 返回结果 一张表。 注意
DATESBETWEEN函数例子1 = DATESBETWEEN ( '例子'[日期], DATE ( 2019, 4, 1 ), DATE ( 2019, 6, 30 ) )
结果如下:
从这里能发现DATESBETWEEN函数与之前几期日期函数的区别。
日期函数会自动填充,将非连续的日期填充变得连续。
函数周期表丨时间智能丨表丨 DATESBETWEEN
DATESBETWEEN函数 DATESBETWEEN函数隶属于“时 间 智 能 函 数 ”,属于“表 ”函数。可以用作生成固定范围的日期,也可以用来作为限定条件来对聚
合计算进行限制。 在业务需求中,有时候需要将数据与上一阶段的数据进行对比,注意,这里说的是一个阶段,不是一个点;还有一种情况是需要 用一段时间的数据作为标准去比较。
CALCULATE ( SUM ( '例子'[销售] ), TP ) / 5
这段代码是什么意思?求2019年5月1日到2019年10月1日之间的销售数据平均值作为标准去被比较。
放在折线图中对比,结果如下:
动态的观测一下: 可以看得出来,无论切片器如何调整,被比较的标准线都没有发生变化。