M函数基本表达式

注释

单行注释:“//”

多行注释:“/* ... */”

基本表达式

let...in...结构

let:用于封装计算结果,并为计算命名

in:用于显示计算结果

let
source = Text.proper("hello word")
in
source // hello word

M函数基本变量类型

Type Example value
Binary 00 00 00 02 // number of points(2)
Date 5/23/2015
DateTime 5/23/2105 12:00:00 AM
DateTimezone 5/23/2105 12:00:00 AM -08:00
Duration 15:35:00
Logical true and false
Null null
Number 0, 1, -1, 1.5, and 2.3e-5
Text "abc"
Time 12:34:12 PM

自定义函数

(parameter1, parameter2, parameter3, ...) => 函数运算表达式

通过调用函数得到函数返回值称为函数值

(parameter1 as number, parameter2 as number) =>
let
final = (parameter1 + parameter2) / 2
in
final

调用函数列表

创建空查询,在编辑器中输入: =#shared

if表达式

if表达式通过对逻辑条件进行判断来对两个表达式进行选择

if 2 > 1 then
2 + 2
else if 2 = 1 then
2 + 1
else
1 + 1
= (a as number) =>
let
源 = if a > 0 then "正数"
else if a = 0 then "0"
else "负数"
in


数据化结构

列表结构(List)

列表是扩在花括号中的一组数据,列表中每个数据都有属于自己的序号以便自己能够被检索到,列表中的数据序号从0开始按照排列顺序依次整数递增,大列表内还可以嵌套子列表、记录等。花括号除了用来括起列表内的所有数据还用来指定列表内数据的序号,通过指定数据序号可以从列表内找到并获取所需的数据值。

Value Type
由数值、布尔值、以及字母组成的列表
有数值组成的列表
{
{1, 2, 3},
{4, 5, 6}
}
大列表内嵌套两个数值组成的小列表
(二维数组)
{
[CustomerID = 1, Name = "Bob",
Phone = "123-4567"],
[CustomerID = 2, Name = "Tom",
Phone = "987-6543"]
}
列表内嵌套两个记录
从列表内取序号为0的数值,结果为123
{
{1, 2, 3},
{4, 5, 6}
}{0}
先从二维数组中取出序号为0的一维数组,再从一维数组中取出序号为1的值,结果为2

记录结构(Record)[ ]

记录用来定义字段和给字段赋值,一个字段由字段名以及字段内的值组成,字段名是唯一的文本值,是字段的标识符。字段名可以不用引号引用,字段名有两种表达形式:

不加 " " 的表达形式、例如OrderID

加 # 和 " " 的表达形式、例如#"Today's data is:"

记录中的内容写在[ ]括号内,[ ]括号同样用于在记录中取特定字段的值。

定义字段以及显示记录内所有值:
let
Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in
Source

定义字段以及显示记录内[Item]字段的值:
let
Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in
Source[Item] //equals Fishing rod

表格结构(Table)

表是由行列数据构成的,可以使用隐式或显示方式定义字段(列)的数据类型。使用 #table建表时,可以使用列表或者记录来定义列名,并使用嵌套列表来定义表中的数据,嵌套列表的大列表内包含所有定义单行用的子列表,而每个子列表则用来定义一行数据。花括号{ }可以用来素引查找指定行的数据。

隐式字段表
let
Source = #table(
{"OrderID", "CustomerID", "Item", "Price"},
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "Ib.worms", 5.00}
}
)
in
Source

显式字段表
let
Source = #table(
type table [OrderID = number, CustomerID = number, Item = text, Price = number],
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "Ib.worms", 5.00}
}
)
in
Source

Power BI 3 DAY的更多相关文章

  1. 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表

    1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...

  2. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题

    千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...

  3. 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验

    Power BI有手机版,目前支持安卓,苹果和WP,不过没有WP手机,苹果在国内还不能用,要FQ和用就不测试了.安卓的我也也是费了九牛二虎之力才把app下载下来,把方法分享给大家. FQ太麻烦,所以建 ...

  4. Power BI官方视频(3) Power BI Desktop 8月份更新功能概述

    Power BI Desktop 8月24日发布了更新版本.现将更新内容翻译整理如下,可以根据后面提供的链接下载最新版本使用. 1.主要功能更新 1.1 数据钻取支持在线版 以前的desktop中进行 ...

  5. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

  6. 千呼万唤始出来,微软Power BI简体中文版官网终于上线了,中文文档也全了。。

    前几个月时间,研究微软Power BI技术,由于没有任何文档和资料,只能在英文官网瞎折腾,同时也发布了英文文档的相关文章:系列文章,刚好上周把文章发布完,结果简体中文版上线了.哈哈,心里有苦啊,早知道 ...

  7. 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???

    在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...

  8. 微软Power BI技术文章与资源目录

    下面是本博客原创的微软Power BI技术相关文章,对于部分转载文章和资源,会注明出处. 本博客将发布基于微软Power BI相关的基础入门文章,视频教程等资源,敬请关注. 个人建立的Power BI ...

  9. 一起学微软Power BI系列-使用技巧(2)连接Excel数据源错误解决方法

    上一篇文章一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库中,我们介绍了Power BI Desktop中连接Oracle和Mysql的方法,其实说到底还是驱动的问题, ...

  10. Power BI REST API

    Overview of Power BI REST API https://msdn.microsoft.com/en-us/library/dn877544.aspx 验证方式 OAuth 2.0 ...

随机推荐

  1. ElasticSearch 映射类型及数据类型区分

    本文为博主原创,未经允许不得转载: 1.ES 中的映射可以分为动态映射和静态映射 动态映射:在关系数据库中,需要事先创建数据库,然后在该数据库下创建数据表,并创建表字段.类型.长度.主键等,最后才能基 ...

  2. 永久激活Windows10专业版及其它版本【亲测有效2022-03-16,两种方式】

    前言 小编最近使用公司的电脑,开始出现让你激活的提示,而且每次开机都会弹出来,小编忍住了:但是过不了半个月开始给你在桌面上显示了,一直显示和水印一样.小编忍无可忍,必须找个办法给你消灭掉!!,于是小编 ...

  3. 【ThreadX-GUIX】Azure RTOS GUIX和Azure RTOS GUIX Studio概述

    Azure GUIX嵌入式GUI是Microsoft的高级工业级GUI解决方案,专门针对深度嵌入式,实时和IoT应用程序而设计.Microsoft还提供了名为Azure RTOS GUIX Studi ...

  4. [转帖]Linux系统管理-crond、chkconfig、systemd、unit、target

    https://cloud.tencent.com/developer/article/1409845 10.23 linux任务计划cron crontab命令被用来提交和管理用户的需要周期性执行的 ...

  5. [转帖]Kafka主题与分区

    https://zhuanlan.zhihu.com/p/428845986#:~:text=%E4%B8%80%E3%80%81kafka-topics.sh%E6%93%8D%E4%BD%9C%2 ...

  6. [转帖]nginx 反向代理 URL替换方案

    nginx 提供反向代理服务,日常开发过程中有时候我们需要使用nginx 作为代理服务根据url的不同去访问不同的服务器或者不同端口,如下提供两种方案. 1.直接替换location  匹配部分 1. ...

  7. [转帖]超线程SMT究竟可以快多少?(AMD Ryzen版 )

    https://www.modb.pro/db/139224 昨天我们用Intel I9的10核,每个核2个threads的机器跑了内核的编译: 超线程SMT究竟可以快多少? 今天,我换一台机器,采用 ...

  8. [转帖]TaiShan v110 - Microarchitectures - HiSilicon

      https://en.wikichip.org/wiki/hisilicon/microarchitectures/taishan_v110 Edit Values TaiShan v110 µa ...

  9. [转帖]shell 实现行转列、列转行的几种方法

    目录 shell 实现行转列.列转行的几种方法 awk 行转列 xargs 行转列 tr 列转行 参考资料 shell 实现行转列.列转行的几种方法 awk 行转列 以空格为分隔符 awk -F &q ...

  10. locust+python性能测试库

    一.简介 locust官网介绍:Locust 是一个用于 HTTP 和其他协议的开源性能/负载测试工具.其对开发人员友好的方法允许您在常规 Python 代码中定义测试.Locust测试可以从命令行运 ...