数据化结构

其他数据结构

复合数据结构的列表
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. oracle数据库锁表后的处理方案

    oracle数据库, 数据库(执行查询语句或存储过程执行)操作,导致表被锁死的情况的解决方案: 一.查看已经锁定的数据库表 select b.owner,b.object_name,a.session ...

  2. 概率图模型 · 蒙特卡洛采样 · MCMC | 非常好的教学视频

    https://www.bilibili.com/video/BV17D4y1o7J2?p=1 非常感谢!感觉学会一点了,应该能写作业了

  3. Nacos源码 (1) 源码编译及idea环境

    本文介绍从gitee下载nacos源码,在本地编译,并导入idea进行本地调试. 从gitee下载源码 由于github访问速度慢,所以我选择使用gitee的镜像仓库: git clone https ...

  4. R语言—数据基础及练习

    ## 创建leadership数据框 manager <- c(1,2,3,4,5) date <-c("10/24/08","10/28/08", ...

  5. JS - Array - 在数组的指定下标添加或替换元素 。 也可删除指定下标的元素

    一,首先介绍下 js Array对象 中的 splice 方法 . ( splice在英文中是剪接的意思 ) 1,定义和用法 splice() 方法用于插入.删除或替换数组的元素. 注意:这种方法会改 ...

  6. [转帖]sql_exporter的使用

    https://www.jianshu.com/p/df4b7a7cfc0d 一.背景 有些时候,我们想看每天系统的登录人数.或者系统中订单的数据,比如:成功的订单.异常的订单等等.这些数据都在我们的 ...

  7. [转帖]Module ngx_http_v2_module

    https://nginx.org/en/docs/http/ngx_http_v2_module.html#:~:text=Sets%20the%20maximum%20number%20of%20 ...

  8. [转帖]金仓数据库KingbaseES V8R6索引坏块故障处理

    案例说明: 在执行表数据查询时,出现下图所示错误,索引故障导致表无法访问,后重建索引问题解决.本案例复现了此类故障解决过程. 适用版本: KingbaseES V8R3/R6 一.创建测试环境 # 表 ...

  9. OpenGauss3.1.0 单机版安装部署过程

    背景 由易到难 先进行单节点的设置 先说坑 openEuler2203 默认安装了python3.9 但是openGauss里面指代了3.6和3.7 /openGauss/install/om 注意在 ...

  10. Chrome 历史版本下载点

    https://www.chromedownloads.net/chrome64win-stable/