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. 理解 Kubernetes volume 和 共享存储

    1. Kubernetes volume 文章 介绍了 Docker volume.与 docker volume 类似的,在 kubernetes 中存在 Pod 级别的 volume,Pod 的 ...

  2. 异步httpClient(Async HttpClient)

    一.简介 二.mvn依赖 三.客户端 3.1 官网实例 3.2. 根据官方文档的介绍,简单封装了一个异步HttpClient工具类 3.3 基本原理 四.参考文档 一.简介 HttpClient提供了 ...

  3. springboot入参下划线转驼峰出参驼峰转下划线

    springboot入参出参下划线转驼峰 前言 因为历史原因前端入参和出参都为下划线,下划线对有亿点强迫症的我来说是不可接受的.因此就有了下面这篇. 本篇基于之前的一篇springboot封装统一返回 ...

  4. IBM jca 工具的学习与整理

    IBM jca 工具的学习与整理 背景 发现自己最早看到IBM这个工具的时间是 2022年9月份. 但是一直没有进行过仔细的学习与论证. 本周出现了一个问题. 虽然通过gclog明显看出来是一个oom ...

  5. [转帖]TiDB Control 使用说明

    https://docs.pingcap.com/zh/tidb/stable/tidb-control TiDB Control 是 TiDB 的命令行工具,用于获取 TiDB 状态信息,多用于调试 ...

  6. [转帖]shell脚本使用expect自动化交互登录远程主机进行批量关机

    前文 1.目标主机登录用户都为root,且密码一致 2.目标主机开放启动了SSH服务且22号端口可访问(防火墙未进行拦截) 软件介绍 expect Expect是一个用来实现自动和交互式任务进行通信的 ...

  7. [转帖]Jmeter中线程组和setUP线程组、tearDown线程组的区别

    JMETER: setUP线程组:在测试任务ThreadGroup 运行前先被运行.通常用在运行测试任务前,做初始化工作.例如建立数据库连接初始分化工作.用户登录 tearDown线程组:在测试任务线 ...

  8. [转帖]Kubernetes-15:一文详解Pod、Node调度规则(亲和性、污点、容忍、固定节点)

    https://www.cnblogs.com/v-fan/p/13609124.html Kubernetes Pod调度说明 简介 Scheduler 是 Kubernetes 的调度器,主要任务 ...

  9. [转帖]信创从芯开始,CPU实现国产有多难?

    https://www.eet-china.com/mp/a213516.html 数字底座的"底座"--CPU,决定信创底层逻辑的关键.CPU 是信息产业中最基础的核心部件,指令 ...

  10. [转帖]DISK BUSY的理解误区

    前几天有个客户的系统存在性能问题,从AWR报告上我们看到是CPU使用率过高,同时GLOBAL CACHE方面的争用比较严重.系统中的烂SQL很多,数据库中很多几十GB的大表也没有分区,总之问题很多.不 ...