- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
今天学习一下在power query 中使用Function.ScalarVector函数来优化我们调用的M函数公式。本例来自老外
的博客文章 https://blog.crossjoin.co.uk/201 / 11/ 16/function-scalarvector-optimise-power-query-m-
functions/ ,我想试着按照原英文的步骤,来熟悉一下这个函数的使用。我们先看一下这个函数的基本解释
这个函数能够使你将批量的函数请求和单行请求结合起来。下面我会跟着老外的例子来走一遍,熟悉理解下。
下面是一个叫SingleValueUpper的函数,作用很简单,英文小写转大写:
(InputText as text) = Text.Upper(InputText)
现在创建一个名叫Product的表(table):
#table(
type table [Fruit=text],
{{apples},{oran es},{pears}}
)
平常一般做法就是Table.AddColumn(Product, Fruit Upper, each SingleValueUpper([Fruit]))实现大小写转换。
日常代码
let
Sin leValueUpper=(InputText as text) =Text.Upper(InputText),
Product = #table(
type table [Fruit=text],
{{apples},{oran es},{pears}}
),
res=Table.AddColumn(Product, Fruit Upper, each Sin leValueUpper([Fruit]))
in
res
结果
在上面的例子里,SingleValueUpper函数被调用了3次,每一行调用了一次。如果是这样调用网络服务的话,效率
会非常的低。
现在来看看ListUpper函数
(InputText as list) =
List.Transform(
InputText,
each Text.Upper(_)
)
这个函数接受一个文本列表,并把里面的每个值转化为大写并返回一个列表结果。上面的例子我们可以通过
ListUpper(Product[Fruit])就获得了水果的列表并完成转换了。 如果你是这样调用网络服务,会更高效。
Function.ScalarVector可以像这样通过引发函数开关来调用函数。来看下自定义一个ScalarVectorUpper函函
数数
Function.ScalarVector(
type function(Fruit as text) as text,
(InputTable) =
let
BufferTable = Table.Buffer(InputTable),
InputList = BufferTable[Fruit],
CallFunction = ListUpper(InputList)
in
CallFunction
)
我们这里可以看到Function.ScalarVector的两个参数了
第一个参数,匹配我们在调用的表的列的函数类型。
第二个参数,传递一个和函数类型(第一参数)相同列的表。文档里面说这个函数不能对表枚举超过一次。所以需
要使用 Table.Buffer() 函数将表缓冲到内存里面,隔壁外部环境。
查询的代码如下;
let
ListUpper=(InputText as list) =
List.Transform(
InputText,
each Text.Upper(_)
),
ScalarVectorUpper=Function.ScalarVector(
type function(Fruit as text) as text,
(InputTable) =
let
您可能关注的文档
- PowerBI技巧之PowerQuery与PowerPivot将引爆你的桌面级数据分析:能量巨大,超出你想象!.pdf
- PowerBI技巧之PowerQuery与M语言之什么是PowerQuery和M语言!-PowerQuery系列文章之一.pdf
- PowerBI技巧之PowerQuery的数据获取界面(Excel及PowerBI)的异同.pdf
- PowerBI技巧之PowerQuery 实现数据导入CSV 功能-PowerQuery 系列文章之四.pdf
- PowerBI技巧之PowerQuery 导入Excel 内容-PowerQuery 系列文章之五.pdf
- PowerBI技巧之PowerBuilder中quick select类型的datawinow数据源控件中添加查询参数.pdf
- PowerBI技巧之PowerBI实用技巧:案例五(巧用Switch函数展现指标RGB颜色).pdf
- PowerBI技巧之PowerBI实用技巧:案例三(动态参数筛选控制排名的展示——DAX RANKX).pdf
- PowerBI技巧之PowerBI-日期和时间函数-YEAR_QUARTER_MONTH_DAY.pdf
- PowerBI技巧之PowerBI-日期和时间函数-DATE_EDATE_DATEVALUE.pdf
- PowerBI技巧之Power BI中使用DAX生动展现人员头像、动态标签——销售数据里的那些商业智能.pdf
- PowerBI技巧之Power BI中summarizecolumns函数、sum函数实现SQL Server中的group by分组汇总.pdf
- PowerBI技巧之Power BI中selectcolumns函数+related函数实现SQL Server中的join.pdf
- PowerBI技巧之Power BI中row函数+union函数实现SQL Server中的虚拟表.pdf
- PowerBI技巧之Power BI中datatable函数实现SQL Server中的虚拟表.pdf
- PowerBI技巧之Power BI中calculatetable函数实现SQL Server中的where.pdf
- PowerBI技巧之Power BI在线服务与SQL Reporting Services之间的功能差异.pdf
- PowerBI技巧之Power BI免费版(Free),专业版(Pro)以及增值版(Premium)授权功能对比.pdf
- PowerBI技巧之Power BI技巧:避免返回空值的三种方法(IF函数、COALESCE函数、度量值+0).pdf
- PowerBI技巧之Power BI初步介绍.pdf
文档评论(0)