Power Query 函数-Text,Date,Table

Power Query 函数是一些事先定义好的函数,可以在 Power Query 中使用,以帮助您更方便地处理数据。以下是一些常用的 Power Query 函数的用法介绍:

Text.Start:用于提取文本字符串的前几个字符。其基本语法为 Text.Start(text as text, count as number)。

Text.End:用于提取文本字符串的后几个字符。其基本语法为 Text.End(text as text, count as number)。

Text.Middle:用于提取文本字符串的中间几个字符。其基本语法为 Text.Middle(text as text, start as number, count as number)。

Text.TrimStart:用于删除文本字符串开头的空格。其基本语法为 Text.TrimStart(text as text)。

Text.TrimEnd:用于删除文本字符串结尾的空格。其基本语法为 Text.TrimEnd(text as text)。

Text.Trim:用于删除文本字符串开头和结尾的空格。其基本语法为 Text.Trim(text as text)。

Text.Replace:用于替换文本字符串中的一个或多个子字符串。其基本语法为 Text.Replace(text as text, old_value as text, new_value as text)。

Text.Split:用于将文本字符串按照指定的分隔符进行分割。其基本语法为 Text.Split(text as text, delimiter as text)。

Date.Year:用于提取日期值的年份。其基本语法为 Date.Year(date as date)。

Date.Month:用于提取日期值的月份。其基本语法为 Date.Month(date as date)。

Date.Day:用于提取日期值的日期。其基本语法为 Date.Day(date as date)。

Table.SelectColumns:用于选择表格中的一些列。其基本语法为 Table.SelectColumns(table as table, columns as list)。

Table.SelectRows:用于选择表格中的一些行。其基本语法为 Table.SelectRows(table as table, condition as function)。

Table.AddColumn:用于向表格中添加一个新列。其基本语法为 Table.AddColumn(table as table, new_column_name as text, column_generator as function)。

Table.Group:用于将表格按照指定的列进行分组。其基本语法为 Table.Group(table as table, key as list, aggregations as list)。

以上是一些常用的 Power Query 函数的用法介绍,当然还有很多其他的函数,可以根据不同的需求进行使用。

### Power Query 中处理日期间隔的函数Power Query 中,处理日期间隔主要依赖于 `Date` 和 `Duration` 类型的相关函数。这些函数可以方便地执行诸如计算两个日期之间的差异、增加或减少特定时间单位的操作。 #### 基本日期操作函数 - **Date.AddDays**: 向给定日期添加指定天数。 ```m Date.AddDays(#date(2023, 10, 5), 7) ``` - **Date.AddMonths**: 向给定日期添加指定月份数量。 ```m Date.AddMonths(#date(2023, 10, 5), 1) ``` - **Date.AddYears**: 向给定日期添加指定年份数量。 ```m Date.AddYears(#date(2023, 10, 5), 1) ``` 以上三个函数分别用于向现有日期上加减日、月、年的数值[^1]。 #### 计算日期差值 为了获取两个日期间的差距,通常会使用 `DateTimeZone.Difference` 或者更简单的 `Duration` 函数来表示两者之间的时间跨度: - **DateTimeZone.Difference** 此函数返回的是一个持续时间对象(duration),它代表了两个日期/时间戳记之间的区别。 ```m DateTimeZone.Difference(DateTime.LocalNow(), #datetimezone(2023, 9, 1, 0, 0)) ``` - **Duration.TotalDays**, **Duration.TotalHours**, etc. 这些辅助函数可以从 Duration 对象中提取具体的总秒数、分钟数、小时数或是整天的数量。 ```m let diff = DateTimeZone.UtcNow() - #datetimezone(2023, 8, 1, 0, 0), daysDiff = Duration.TotalDays(diff) in daysDiff ``` 上述例子展示了如何通过创建 duration 来衡量当前 UTC 时间与过去某个固定时刻的距离,并转换成总的天数形式显示出来。 #### 实际应用场景案例 假设有一个销售数据表,其中包含订单日期 (`OrderDate`) 及发货日期 (`ShipDate`) 字段,现在想要新增一列表示每笔交易从下单到发货所需的工作日数目,则可以通过如下方式实现: ```m let Source = ..., AddWorkingDaysColumn = Table.AddColumn(Source, "Shipping Working Days", each List.Sum( List.Transform( {Number.From([ShipDate])..Number.From([OrderDate])}, each if Number.Mod(_,7)<5 then 1 else 0 ) ), Int64.Type ) in AddWorkingDaysColumn ``` 这段代码片段利用了 M 语言中的循环结构以及逻辑判断语句实现了工作日计数的功能,在实际业务场景下非常实用[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值