Power BI 4 DAY
数据化结构
其他数据结构
复合数据结构的列表
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右侧的数据类型匹配 |
爬取网页
- 要明确信息在哪个网址
- 要用什么方法获取数据
- 明确所要数据的位置
= (cityname as text) =>
let
源 = Web.Page(Web.Contents("http://www.air-level.com/air/" & cityname & "/")),
Data = 源{0}[Data]
in
Data
Power BI 4 DAY的更多相关文章
- 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表
1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...
- 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...
- 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
Power BI有手机版,目前支持安卓,苹果和WP,不过没有WP手机,苹果在国内还不能用,要FQ和用就不测试了.安卓的我也也是费了九牛二虎之力才把app下载下来,把方法分享给大家. FQ太麻烦,所以建 ...
- Power BI官方视频(3) Power BI Desktop 8月份更新功能概述
Power BI Desktop 8月24日发布了更新版本.现将更新内容翻译整理如下,可以根据后面提供的链接下载最新版本使用. 1.主要功能更新 1.1 数据钻取支持在线版 以前的desktop中进行 ...
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
- 千呼万唤始出来,微软Power BI简体中文版官网终于上线了,中文文档也全了。。
前几个月时间,研究微软Power BI技术,由于没有任何文档和资料,只能在英文官网瞎折腾,同时也发布了英文文档的相关文章:系列文章,刚好上周把文章发布完,结果简体中文版上线了.哈哈,心里有苦啊,早知道 ...
- 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???
在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...
- 微软Power BI技术文章与资源目录
下面是本博客原创的微软Power BI技术相关文章,对于部分转载文章和资源,会注明出处. 本博客将发布基于微软Power BI相关的基础入门文章,视频教程等资源,敬请关注. 个人建立的Power BI ...
- 一起学微软Power BI系列-使用技巧(2)连接Excel数据源错误解决方法
上一篇文章一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库中,我们介绍了Power BI Desktop中连接Oracle和Mysql的方法,其实说到底还是驱动的问题, ...
- Power BI REST API
Overview of Power BI REST API https://msdn.microsoft.com/en-us/library/dn877544.aspx 验证方式 OAuth 2.0 ...
随机推荐
- ElasticSearch 映射类型及数据类型区分
本文为博主原创,未经允许不得转载: 1.ES 中的映射可以分为动态映射和静态映射 动态映射:在关系数据库中,需要事先创建数据库,然后在该数据库下创建数据表,并创建表字段.类型.长度.主键等,最后才能基 ...
- 6. 配置项:relabel_config
6.1relabel_config的位置 6.2 relabel_config参数详解 1.replace 2. keep 3.drop 6.labelkeep 7.hashmod 6.3 正则表达式 ...
- WPF|黑暗模式的钱包支付仪表盘界面设计
阅读目录 效果展示 准备 简单说明 + 源码 结尾(视频及源码仓库) 1. 效果展示 欣赏效果: 2. 准备 创建一个WPF工程,比如站长使用 .NET 7 创建名为 WalletPayment 的W ...
- 常见的IE布局兼容问题
(1) div 中内容在IE和火狐中居中问题: (2)高度的问题,div出现重叠 (3)浮动引发的问题如外围DIV无法框住内部元素: (4)IE浮动margin产生双倍距离-display:inli ...
- Nginx 配置文件备忘单
Nginx 是用于 Web 服务.反向代理.缓存.负载平衡.媒体流等的开源软件.在这篇文章中,我将提到一些我们经常使用的 Nginx 配置. 监听端口 server { Standard HTTP P ...
- [转帖]ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
1.报错信息 ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on acces ...
- [转帖]jcmd命令详解
1 基本知识 jcmd 是在 JDK1.7 以后,新增了一个命令行工具. jcmd 是一个多功能的工具,相比 jstat 功能更为全面的工具,可用于获取目标 Java 进程的性能统计.JFR.内存使用 ...
- [转帖]军备芯片14nm对比5nm,在战场上差距在哪里?
https://www.eet-china.com/mp/a207185.html 现在全球已经打响科技之战,每个国家都在力求让自己做到足够拔尖.美国商务部长就曾自曝家底说,美国制定两套战略应对在芯片 ...
- 谈JVM参数GC线程数ParallelGCThreads合理性设置
作者:京东零售 刘乐 导读:本篇文章聚焦JVM参数GC线程数的合理配置,从ParallelGCThreads参数含义.参数设置,到参数实验以及修改意见进行解析. 1. ParallelGCThread ...
- vue mixin混入 全局混入 局部混入
<div id="app"> --{{nameName}} </div> // 全局混入 不需要注册 var m1 = Vue.mixin({ data() ...