数据化结构

其他数据结构

复合数据结构的列表
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. pycharm等编辑器快捷键大赏

    1.序论 平时打代码的时候用鼠标在写代码的时候还行,代码一长就GG,快捷键便是我们的好选择 2.应用场景 1.问题一--选中一段指定区域 我想选中一段区域(我们一般用鼠标拖动),或者某一个标识符(光标 ...

  2. [转帖]在Linux中切换cmake版本

    在Linux中切换cmake版本https://blog.whsir.com/post-6804.html   在Linux系统中,有时需要使用cmake进行程序编译,由于不同的Linux系统导致安装 ...

  3. [转帖]windows10彻底关闭Windows Defender的4种方法

    https://zhuanlan.zhihu.com/p/495107049 Windows Defender是windows10系统自带的杀毒软件.默认情况下它处于打开的状态.大多数第三方的杀毒软件 ...

  4. [转帖]TIDB - TIDB集群的扩容和缩容及TIUP指令说明

    一.TIUP工具简介 前面介绍了使用TIUP搭建TIDB集群,本篇文章详细介绍下使用TIUP对集群进行扩容和缩容. 在面对双十一这种流量突峰的场景,我们平常的TIDB集群有可能承受不住,因此需要提前进 ...

  5. [转帖]Intel、海光、鲲鹏920、飞腾2500 CPU性能对比

    https://plantegg.github.io/2021/06/18/%E5%87%A0%E6%AC%BECPU%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94/ Int ...

  6. Linux 下面删除指定日期之前文件的办法

    1. Linux 下面最近有一个需求 需要只更新2020年4月10号之后补丁的需求 2. rsync 能够拉取所有的补丁文件  没找到能够按照日期进行拉取的办法. 所以想了一个折中的办法 先拉取 再按 ...

  7. 麒麟信安V3.4 安装PG15的过程

    麒麟信安V3.4 安装PG15的过程 背景 发现基于OpenEuler的几个系统使用CentOS的rpm包 安装PG数据库时有问题. 会提示缺少依赖的so文件. 今天想着解决一下, 就百度了一下并且进 ...

  8. 记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队

    一.问题是怎么发现的 部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题 config.pbtxt 中设置模型分别在指定gpu上部署实例配置不生效 如以下配置为在gpu0上部署 ...

  9. void的讲解 、any的讲解 、联合类型的讲解

    1. void的使用 空值一般采用 void 来表示,同时void也可以表示变量 也可以表示函数没有返回值哈 使用了 void 就不能够使用 return 哈 let sum = function() ...

  10. 【K哥爬虫普法】12亿公民信息泄露,仅判3年,个人信息是否为爬虫“禁区”?

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...