数据化结构

其他数据结构

复合数据结构的列表
let
source = {
1, //数值
"Bob", //文本
DateTime.ToText(DateTime.LocalNow(),"yyyy-MM-dd"), //函数值
[OrderID = 1, CustomerID = 1, Item = "fishing rod", Price = 100.0] //记录
}
in
source
let
source = [CustomerID = 1, Name = "Bob", Phone = "123-4567", Orders = {
[OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0],
[OrderID = 2, CustomerID = 1, Item = "Ib.worms", Price = 5.0]
}]
in
source

列表嵌套列表

let
Source = #table(
{"OrderID", "SalespersonID", "Price","Salestable"},
{
{1, "a", 100, #table(
{"SalesPersonID", "SalesPersonName"},
{
{"a", "Tom"}
}
)}
}
)
in
Source

记录嵌套列表

let
Source = [
OrderID = 2,
Salseperson = "b",
Price = 200,
Salsepersontable = #table(
{"Salseperson", "SalseName"},
{
{"b","王二"}
}
)
]
in
Source

M函数计算方式

M两数的计算方式与Excel单元格相互间引用计算的方式类似,其计算顺序是根据计算单元中每个元素问的依赖关系決定的。

在M两数中便可以写成如下形式,它与Excel单元格的区别在于M两数中的A1、A2、A3是记录中的元素,而Excel中的A1、A2、A3是单元格地址。

记录中各元素间相互引用计算
[
A1 = A2 * 2 // 4
A2 = A3 + 1 // 2
A3 = 1
]

在M两数中还可以进行更为复杂的元素间的引用计算。例如下边例子中的#'Total Sales "就是引用同一个记录中嵌套的列表内的第一个记录内的Total宁段,以及第二个记录内的Total字段将这两个值相加得到的。

复合嵌套记录内元素间的引用计算
[
Sales = {
[
Year = 2007,
FirstHalf = 1000,
SecondHalf = 1100,
Total = FirstHalf + SecondHalf
],
[
Year = 2008,
FirstHalf = 1200,
SecondHalf = 1300,
Total = FirstHalf + SecondHalf
]
},
#"Total Sales" = Sales{0}[Total] + Sales{1}[Total]
] // 4600

运算符

一个完整的计算表达式由计算数与运算符两部分组成,例如在计算表达式1+2中,1和2是计算数而+就是运算符。M两数中运算符的含义有时取決于参与计算的计算数的数据类型

运算符 表达式 结果 备注
结合符(&) "A"&"BC"/{1}&{2,3}/[a=1]&[b=2 "ABC"/{1,2,3}/[a=1,b-2] 文本结合/列表结合/记录结合
大于(>) 2>1 True 返回布尔值T
大于等于(>=) 1>=1 True 返回布尔值T
小于(<) 1<2 True 返回布尔值T
等于(=) 1=2 False 返回布尔值T
不等于(<>) 2<>1 True 返回布尔值T
或(or) if 2>1 or 2<1 then
1
else
0
1 or两端判断条件有一个为真则结果为真
和(and) if 2>1 and 2<1 then
1
else
0
0 and两端判断条件全部为真则结果为真,有一方为假时结果为假
非(not) if not(2<1)then
1
else
0
1 not将判断条件的结果进行反转,判断条件为真时返回假,判断条件为假时返回真
加(+) 1+2 3 -
减(-) 2-1 1 -
乘(*) 2*2 4 -
除(/) 4/2 2 -
负(-x) -2 -1 -
中括号([]) [
Year=2007,
FirstHalf=1000
]
创建记录或引用字段
花括号({}) [
Sales=
{
[
Year=2016,
Total=5000
],
[
Year=2017,
Total=6000
]
},
#"Total Sales"=Sales{0}[Total]
]
5000 创建列表或引用列表中元素
is if 1 is number then 1 else 0 1 如果1是数值型则返回1若不是则返回0
as 1 as number 1 1的数据类型为数值型as左侧的数值须与as右侧的数据类型匹配

爬取网页

  1. 要明确信息在哪个网址
  2. 要用什么方法获取数据
  3. 明确所要数据的位置
= (cityname as text) =>
let
源 = Web.Page(Web.Contents("http://www.air-level.com/air/" & cityname & "/")),
Data = 源{0}[Data]
in
Data



Power BI 4 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. C#排序算法3:插入排序

    插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的.记录数增1的有序表. 原理: ⒈ 从第一个元素开始,该元素可以认为已经被排序 ⒉ 取出下一个元素,在已 ...

  2. docker 资源限制之 cgroup

    1. Liunx cgroup 使用 namespace 隔离运行环境,使得进程像在独立环境中运行一样.然而,仅有隔离环境还不够,还得限制被 namespace 隔离的资源.否则,namespace ...

  3. Ubuntu 安装 MinIO

    MinIO是一个开源的高性能对象存储解决方案,支持多种安装方式,本例仅介绍最基础的单机安装方式. 下载安装文件 直接从MinIO官网下载安装文件. 下载服务端 wget https://dl.min. ...

  4. 利用工具查看JMS微服务在线情况,可直接调用远程方法,也可自动生成微服务客户端代码

    链接:https://cccscls-my.sharepoint.com/personal/jack_mutc_ca/_layouts/15/onedrive.aspx?id=%2Fpersonal% ...

  5. [转帖]PostgreSQL 慢查询SQL跟踪

    https://www.cnblogs.com/VicLiu/p/12017704.html PostgreSQL 开启慢SQL捕获在排查问题时是个很有效的手段.根据慢SQL让我在工作中真正解决了实际 ...

  6. [转帖]Springboot配置kafka用户名密码

    华为云开发者联盟 Springboot配置kafka用户名密码 Springboot配置kafka用户名密码 SpringBoot配置kafka用户名密码 Springboot配置kafka用户名密码 ...

  7. Python学习之十三_pip的学习

    Python学习之十三_pip的学习 pip的含义 pip: pip is the package installer for Python. You can use pip to install p ...

  8. [转帖]OutOfMemoryError内存溢出相关的JVM参数

    原文在这里: OutOfMemoryError内存溢出相关的JVM参数 JVM提供了很多处理内存溢出的相关参数,本文主要来讲解下这些参数,当你遇到内存溢出的时候可能会对你非常有帮助,这些参数主要有: ...

  9. 【JS 逆向百例】转变思路,少走弯路,X米加密分析

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:X米账号登 ...

  10. python中,Microsoft Visual C++ 14.0 or greater is required问题解决方案

    今天在写一个小程序,安装依赖的时候发现这个问题,平时都是直接安装Visual Studio解决,但是这个安装太大了,所以解决看看怎么安装是最方便的,最容易解决的. 下面这个就是出现的问题: build ...