您的位置: 小王聊社会 > 学习

Power Query 中的“#”号开头的7个M函数

2020-02-14来源:小王聊社会

Power Query中的M函数通常都是首字母大写,但有一种例外的全部小写的函数,就是用#号开头的函数,这一类函数一共有7个:

Power Query 中的“#”号开头的7个M函数

其中有5个函数是日期时间相关的函数:

  • #date
  • #datetime
  • #datetimezone
  • #duration
  • #time

另外两个函数一个是二进制#binary,一个是表函数#table

#binary

这个函数可以通过输入的数据来创建一个二进制的文件,数据输入的规则,要依据ASCII编码表来:

Power Query 中的“#”号开头的7个M函数

我们例子中用的是16进制用0x开头输入。

Power Query 中的“#”号开头的7个M函数

如果要看这个二进制的内容就需要像导入CSV文件一样,选择一种编码方式,解读出来:

Power Query 中的“#”号开头的7个M函数

其实过程没那么复杂,只需要双击那个CSV图标就可以了。

#date

这个函数就象Excel中的Date函数一样的使用方法,三个参数分别对应:

  1. 年: 1 ≤ year ≤ 9999
  2. 月:1 ≤ month ≤ 12
  3. 日:1 ≤ day ≤ 31

因为Power Query中的数据类型规定比较严格,所以在运算过程中,不能使用“2019/1/1”这样直观的日期或时间格式的数据,那么就需要用这篇文章中介绍的这几个与日期时间相关的函数来转换一下:

Power Query 中的“#”号开头的7个M函数

#datetime

日期时间连接的长日期格式的数据就要用到#datetime函数,这个函数有6个参数:

  1. 年: 1 ≤ year ≤ 9999
  2. 月:1 ≤ month ≤ 12
  3. 日:1 ≤ day ≤ 31
  4. 时:0 ≤ hour ≤ 23
  5. 分:0 ≤ minute ≤ 59
  6. 秒:0 ≤ second ≤ 59
Power Query 中的“#”号开头的7个M函数

#datetimezone

时区函数要了解时区的划分:

Power Query 中的“#”号开头的7个M函数

全球划分为24个时区,格林威治时间为时区开始的地方,我们中国位于东6到东8区,统一使用北京时间东8区的时间。

这个函数有8个参数:

  1. 年: 1 ≤ year ≤ 9999
  2. 月:1 ≤ month ≤ 12
  3. 日:1 ≤ day ≤ 31
  4. 时:0 ≤ hour ≤ 23
  5. 分:0 ≤ minute ≤ 59
  6. 秒:0 ≤ second ≤ 59
  7. 小时偏移:-14 ≤ offset-hours + offset-minutes / 60 ≤ 14
  8. 分钟偏移:-14 ≤ offset-hours + offset-minutes / 60 ≤ 14
Power Query 中的“#”号开头的7个M函数

#duration

时间间隔函数,这个概念在Excel中是没有的,这个函数有4各参数:

  1. 天数
  2. 小时数
  3. 分钟数
  4. 秒数

如果我们要进行时间运算,统一间隔为1小时,就要这样写:

Power Query 中的“#”号开头的7个M函数

#time

#time函数与Excel中的time函数一样的用法,三个参数:

  1. 时:0 ≤ hour ≤ 23
  2. 分:0 ≤ minute ≤ 59
  3. 秒:0 ≤ second ≤ 59
Power Query 中的“#”号开头的7个M函数

#table

#table函数我们介绍过,在参数表那篇文章中,就是用来生成一张表格,两个参数:

  1. 列名称
  2. 行内容
Power Query 中的“#”号开头的7个M函数

这个例子中我们用了#table、#date、#time三个函数,看到输出的结果第一行与下面两行是有区别的,使用函数生成的是正确的时间格式,而“2019/1/1”这种是文本格式的内容,需要再通过数据类型设置,才能转换成日期或时间格式:

Power Query 中的“#”号开头的7个M函数

既然都讲到这了,那么在Power Query中还有一个用#号开头的用法,就是#shared给出所有的函数参考:

Power Query 中的“#”号开头的7个M函数

本文由小王聊社会整理,内容仅供参考,未经书面授权禁止转载!图片来源图虫创意,版权归原作者所有。