例2 如果是需要进行多个列的操作,可以在第2参数中使用多次对应的写法,并在最外面用符号{}括起来。 如果除了成绩要减去10,还需要在学科后面加上字符“(上)”。...例3 第3个参数是一个函数,是在第2参数指定列以外表格中的所有列需要进行的操作。 在前面的操作中,成绩列和学科列都有了操作,那剩余其他列(姓名列)也需要进行操作,那就要使用到第3参数了。...如果第2参数的中的学科写错或者定义了其他未在操作表中的列名,则可以通过第4参数来控制返回。...因为指定的列里有 “班级”,但是在原来的表格中不存在,所以会产生错误,但是第4参数有指定1,也就是忽略错误,最终返回的结果如图所示。除了找到的成绩列表外,其余的列数据都在后面添加了个“A”。 ?...因为使用的文本合并,而成绩是数字格式,所以导致出现错误值。 例6 因为第3参数是针对所有未指定的列来进行操作,如果有些指定列不想操作,只想保留的话,那指定列可以使用each _来进行保留。
在Power Query中当出现错误时,会出现的错误提示的原因,如图。 ?...如果这些错误在产生前就能预判,并给与一定的提醒,那对于后续的使用会非常的方便,即使发生了错误,也能知道错误的原因以及怎么去修改错误。怎么去判断是否错误呢?...那有没有可能自定义这些提醒的内容呢?可以的,在Power Query中可以使用error语句,自定义错误时返回的提示内容,那具体怎么操作呢? 有3方式可以实现。 1....这里需要注意的是,记录中的3个字段名是固定的,对应error错误中的提示内容位置,其中Reason为必要内容。前面2个参数只能是文本格式,而最后一个Detail字段可以为文本格式,也可以为记录格式。...这里的Error.Record函数里的3个参数分别代表了记录中的3个字段 如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。
本篇文章主体部分为翻译Chris Webb的一篇文章。 合并查询在Power Query中是很成熟的应用,相当于SQL中的各种JOIN(抽时间会写几篇SQL的join,算是SQL的小核心)。...但同时,在Power Query中合并查询是一个常见的影响刷新效率的因素。在我的工作中,经常会遇到对一些非文件夹性质的数据源进行合并查询操作,所以我一直在想,有没有办法可以对其进行优化。...: 表中列的数量是否影响合并查询时的效率?...我的想法是,合并查询最终只返回一个单独的值,也就是数据量大小,所以不会成为增加查询时间的因素。...– 0 秒 以上的确能够得出结论:合并查询时,列数的多少的确会影响效率, 以上还揭示了:在以上两个查询中,读取数据是立刻发生的,几乎不占用时间,相比之下,最开始的两次查询中读取数据的时间甚至要比执行SQL
感谢朋友们的提醒,之前的按需转置案例文件有错,现已经更新。 今天我们来聊下如何在Power Query中进行类似Excel中通配符的查找。...例: 在{"a","b","ab","abc"}列表中查找以"a"开头的数据。也就是类似我们在Excel中使用通配符a*来查找。...在{"a","b","ab","abc"}列表中查找以"b"结尾的数据。也就是类似我们在Excel中使用通配符*a来查找。...List.Select(源,eachText.EndsWith(_,"b")) ={"b","ab"} 解释:在筛选条件的时候,以Text.EndsWith作为结尾关键词查找,类似于之前是"*"。...在{"a","b","ab","abc"}列表中查找以"b"为中间的数据。也就是类似我们在Excel中使用通配符*b*来查找。
在Excel中我们可以直接使用Vlookup或者Index和Match组合匹配到,然后下拉即可 VlookUp(A2,E1:F4,2,0)*RoundUp(B2,0) Index(F:F,Match(A2...但是这个条件会显得不一样,因为报价时间和发货时间是不等的,因为一般报价都是在发货前,所以在筛选的时候条件是报价时间<=发货时间,这时在筛选的时候会出现多个内容的表。 ?...[单位价格kg]中最大的一个值,而不是最后的一个值。...有了这个最后的时间,按我们就可以按照之前的思路继续进行了,在添加列里面的公示如下。...这里我们需要查找的是2个值,一个是首重,一个是续重(单位价格),然后再去求运费。我们通过var变量来写,相对能够更清楚些。最终我们可以在添加列里面写上如下公式。
引言:本文整理自vbaexpress.com论坛,有兴趣的朋友可以研阅。...Q:我在列D的单元格中存放着一些数据,每个单元格中的多个数据使用换行分开,列E是对列D中数据的相应描述,我需要在列E的单元格中查找是否存在列D中的数据,并将找到的数据标上颜色,如下图1所示。 ?...A:实现上图1中所示效果的VBA代码如下: Sub ColorText() Dim ws As Worksheet Dim rDiseases As Range Dim rCell...End If Loop Next iDisease Next rCell End Sub 代码中使用Split函数以回车符来拆分单元格中的数据并存放到数组中...,然后遍历该数组,在列E对应的单元格中使用InStr函数来查找是否出现了该数组中的值,如果出现则对该值添加颜色。
图1 在下图2所示的工作簿GetData.xlsm中,根据列C中的数据,在上图1的工作簿Data.xlsx的列E中查找是否存在相应数据的单元格。 ?...图2 然后,将Data.xlsx中对应行的列I至列K单元格中的数据复制到GetData.xlsm相应的单元格中,如下图3所示。 ?...Set wksData =Workbooks("Data.xlsx").Sheets("Sheet1") '判断所选单元格是否在列C中 If ActiveCell.Column... 3 Then MsgBox ("请选择列C中的单元格或单元格区域.")...Exit Sub Else '遍历所选的单元格 For Each rng In Selection '在数据工作表中查找相应的值所在的单元格
: 4、Power Query合并查询,按常规表间合并操作如下图所示: 五、4种方法数据匹配查找方法用时对比 经过分别对以上4中方法单独执行多列同时填充(Power Query数据合并法单独执行数据刷新...)并计算时间,结果如下表所示: 从运行用时来看: VLookup函数和Index+Match函数的效率基本一样; Lookup函数在大批量数据的查找中效率最低,甚至不能忍受; Power Query的效率非常高...在思考这些问题的时候,我突然想到,Power Query进行合并查询的步骤,其实是分两步的: 第一步:先进行数据的匹配 第二步:按需要进行数据的展开 也就是说,只需要匹配查找一次,其它需要展开的数据都跟着这一次的匹配而直接得到...那么,如果我们在公式中也可以做到只匹配一次,后面所需要取的数据都跟着这次匹配的结果而直接得到,那么,效率是否会大有改善呢?...当然,使用公式的方法,即使在一定程度上进行改进,和Power Query相比仍然有很大的差距。因此,在数据量较大,数据处理较为复杂的情况下,建议使用Power Query来进行。
一、简介 相比Power BI,Power Query和Power Pivot在行列层级运行计算,Excel一直以来主要还是在单元格层面上的。...近年Excel提供了动态数组运算能力和一系列相关函数,能够类似于Power BI那样,直接在行列层级运算。一方面节省了公式填充复制的工作量,另一方面为更复杂的计算提供了可能性和便捷性。...如果使用数组运算,我们只需要在I3单元格输入一个公式,即可自动填充到J和K中。注意,此时的数组是通过大括号来触发的。公式中第三个参数,用大括号引用了3、4、5列,即要查询第3、4、5列的值。...=VLOOKUP(H2,$A:$E,{3,4,5},0) 三、隐式交集运算符@ 隐式交集逻辑将多个值减少为单个值。上文两个例子中,我们一个公式产生的结果,会自动填充到相邻的范围。...无法删除结果数列中的任意值 动态数组生成的结果,是一个整体,无法像平常excel列那样,删除其中任意的值。 3. 不支持超级表和Power Query 预告:下期将会逐步介绍动态数组函数的应用
【注意】 如果在使用【来自表格 / 区域】命令时,“NamedRange” 被选中并显示在【名称框】中,Power Query 将避免对数据强制使用表格格式,而是直接引用命名范围中的数据。...需要注意的是:其本身计算结果为一个单元格的引用,但其值是 0.9,也就是说:0.9 不是这里真正想要的值,而想要的是 0.9 所在位置的引用。这就构成了: = DynamicRange!...x 单元格中的值,而不是其位置引用本身。...图 6-x-6 Excel 公式中可以引用动态区域 在正常编辑 Excel 公式时可以引用到动态区域。 ) 秘诀是创建一个【空白查询】,并告诉 Power Query 要连接到哪个范围。...在原 Excel 中,她并不包括在命名区域内,但作为从工作表中读取时,它就显示出来了。如果该列充满了 “null” 值,可以直接选择该列并将其删除,或者思考下,这里是不是可以直接将它删除呢?
此行为是正常的,旨在以这种方式工作。引用单个数据源的多个查询如果多个查询从该数据源拉取,则可能会出现对同一数据源的多个请求。 即使只有一个查询引用数据源,这些请求也会发生。...如果查询由一个或多个其他查询引用,则独立计算每个查询(以及它依赖的所有查询)。在桌面环境中,使用单个共享缓存运行数据模型中所有表的单个刷新。...详细信息: 禁用后台分析其他Power Query编辑器后台任务各种Power Query编辑器后台任务还可以触发 (额外的数据源请求,例如查询折叠分析、列分析、1000 行预览的自动刷新,Power...例如,如果开始:在Power Query编辑器中禁用防火墙禁用后台分析禁用列分析和其他任何后台任务[可选]执行 Table.Buffer在此示例中,刷新Power Query编辑器预览时,只会进行单个...设置Power Query编辑器无需重新连接或重新创建查询,只需在Power Query编辑器中打开要测试的查询。 如果不想使现有查询混乱,可以在编辑器中 复制 查询。
为了进行【合并】,最好有一个列,在一个表中包含唯一的值,在另一个表中可以有重复的记录,这被称为一对多关系结构,该结构是确保最终得到的结果与所期望的一致的最好方法。...【注意】 Power Query 还支持一对一和多对多的连接。 在本例中,“SKU” 列在 “Inventory” 表中包含唯一值,而在 “Sales” 表中有重复记录,使用这一列连接两边。...这里保留是为了演示这些列不包含值,因为在 “COA” 表中没有找到匹配的记录。 10.2.2 右外部连接 该功能在 Power Query 叫做:【右外部 (第二个中的所有行,第一个中的匹配行)】。...总的来说,这是一个简洁的方法,但请相信,这就是在 Power Query 中执行近似匹配所需的全部步骤。...虽然在此书出版前,这些体验仅在 Power Query 在线版体验中可用,但 Power Query 团队的目标是在所有版本的 Power Query 之间实现一致性,因此希望在不久的将来,将在最喜爱的
Ken 和 Miguel 对此也有不同的看法。 2.1.2 单个查询的好处 Miguel 倾向于在单个查询或尽可能少的查询中构建所有步骤。...在其他使用 Power Query 的工具中,如 SSIS 和 Azure Data Factory ,只支持单个查询。如果未来需要将解决方案移植到这些平台之一,那么使用单个查询是一个更好的选择。...图 2-3 在 Power Query 编辑器中 “Basic Import.csv” 文件的预览效果 很多用户有过这样的经验:建立了一个表,但在几个月后,业务变更导致需要调整表的列,如何确保在查询中用到的表是否包含需要的列...(译者注:图示视图是 Power Query 在线版中的功能,可以更清晰地显示不同查询的引用关系,并提供更丰富的信息。)...这些术语的效果是一样的,除非被查询链中的另一个查询调用,否则 Power Query 将永远不会执行这些仅以连接形式存在的查询。
Power Query 作为桌面端数据清理和转换的工具,能极大解放生产力,将繁琐的数据处理工作从重复的劳动中解放出来。那么,Power Query 能否对外提供计算服务呢?...在 VBE 环境中,通过【工具】>【引用】添加 Microsoft ActiveX Data Model 的引用。这个是 COM 库,运行 ADO 需要。...在目标工作簿 -- 即提供 Power Query 服务的 Excel 工作表中,筛选条件界面如下: [2019092715131810.png] 所以用 sql = "UPDATE [Criteria...Power Query SDK 微软提供了 Power Query SDK,从而赋予了在 .net 平台中可以直接使用 M 语言的功能。...尽管官方的说法,Power Query SDK 已经在 Visual Studio 2019 中可以使用,但我在安装的时候没有成功,也不打算在 Visual Studio 2017 或更老的版本中折腾,
转换示例:在合并步骤中,用户会被要求选择一个文件作为示例文件,这个查询将【引用】该示例,向用户显示选择的文件内容。...它的目的是让用户在将所有文件追加到单个表之前,对单个文件执行数据转换(用户在这里执行的步骤会自动在转换函数中自动照搬运行并合并,以便它们可以应用于文件夹中的所有文件)。...实际上,这里发生的事情是,Power Query 创建了一个“帮助程序查询”的集合,然后在主查询中添加步骤来使用用它们。...在本章开头的案例背景中提到过这个问题:并非所有的区域都产生相同的产品,所以列的数量因文件而不同。 那么,当用户遇到另一个不生产产品“A”、“B”或“C”的区域时会发生什么?...右击“Quarter”列【替换值】【要查找的值】输入“\”,【替换为】什么都不输入【确定】。 选择所有列【转换】【检测数据类型】。
5.1.2 程序如何解析平面数据 程序在解析数据时,需要知道如下三件事。 数据点是否由单个字符、一组字符或一致的宽度分隔。 一个完整的记录和另一个完整的记录是由什么字符或字符列分隔的。...“Amount” 列中的数值是显示为数值、文本,还是错误?欢迎来到在 Power Query 中处理数据的挑战,因为对于不同的人来说,答案是不同的,这取决于用户【控制面板】中的设置。...在 Excel 的用户界面中,非打印字符被显示为一个方框中的小问号。在 Power Query 中,它们显示为一个空格。...如果列中存在不同的值,用户可以在预览中看到,以预知是在加载数据时会得到的内容,如图 5-18 所示。...由于不能依靠 Power Query 的【修剪】功能,所以看起来必须自己来处理这个问题。 右击 “Vendor” 列标题,【替换值】。 将【要查找的值】设置为 2 个空格。
Power Query 可以在 Power BI 或 Excel 中使用,很多人一开始就在想到底用哪个平台来使用 Power Query,其实不必为此纠结,总有一天会意识到需要把查询复制到一个另一个中的...在本章中,将探讨将查询从一个工具快速移植到另一个工具的方法。...中使用 Power Pivot 数据模型,对于引用了原 Excel 工作簿中的表格的查询,应该 “导入模式”。...图 4-17 为什么 “Date” 列所有的值都显示为 “Error” 在阅读错误信息时,可以看到该列正试图将 “43131” 设置为一个日期。但是这个数字是怎么来的呢?...在这里看到的是 Power BI 在文件中创建的表,这是从 Excel 中复制数据的结果。有趣的是,它的 “Date” 列中不包含日期,而是包含一列数值,如图 4-18 所示。
很多朋友在使用Power Query的过程中,经常会碰到一些感觉看不懂的错误提示,现总结9种常见的情况收藏如下,也方便大家碰到问题时可以搜寻得到: 1、找不到名为“示例操作数据源!..._FilterDatabase”的Excel表 原因:Power Query查询步骤引用的表被删除,或表名被变更。...同时,这里有一种比较隐秘的情况,即Excel表在进行数据筛选的时候,会生成一个临时的“筛选表”,而如果后续的处理步骤中却不小心引用了,就比较可能出错。...9、该键与表中的任何行均不匹配/多行匹配 原因:采用列值(获取行标号)引用表行时,该列值在列的内容中并不存在,或找到多个值。...解决办法:使用Table.SelectRows等函数代替列值引用法 Power Query中的错误提示其实非常多,而且同样一个错误,往往可能在不同的场景下出现,还有一些错误是某些版本的bug或特定电脑环境下出现的问题
与其使用这种功能,更建议用户学会对第一个表进行【引用】,然后在 Power Query 编辑器里面执行【追加】操作。...图 8-13 Power Query 如何知道 “TranDate” 列值应该进入 “Date” 列呢 当【追加】两个表时,Power Query 将从第一个查询中加载数据。...按这个逻辑,这意味着 “TranDate” 列(出现在三月的查询中)在一月和二月中被填充为 “null” 值,因为 “Jan 2008” 的查询没有 “TranDate” 列。...另一方面,由于源文件中的列名改变了,“Mar 2008” 查询没有 “Date” 列,而是拥有 “TranDate” 列。...因为 Power Query 的纵向追加数据功能,原有的工作时间被大幅缩短,并且不存在用户意外地复制粘贴数据导致数据重复的风险,这里根本不需要复制粘贴,只需要将一组数据追加到另一组,删除重复的标题。
在进行数据分析时,您往往不会从单个行中检索所有列的数据,相反,您可能对同时从多个行中获取数据感兴趣,并且往往只分析其中的一列或几列数据。...另一个原因是,在实际的业务中,单个列中的许多值是相同的;例如,几千或几万种产品往往对应着数以百万计的销售交易记录。此时,列式数据库可以通过仅存储一次特定值并记录它所属的行来高度压缩数据。...在Power BI 模型中,通过 Power Query 加载数据时,会将所有数据类型统一转换为 Text。很显然,当您忘记在 Power Query 中显式进行类型转换时,数字列也会存储为文本。...(当然,你可以更改模型中的数据类型,这将自动在 Power Query 中添加一个更改数据类型的步骤。) 整数(Whole Number):正如您所猜测的那样, “整数”数据类型用于存储整数。...表中的每一行都有一个标识符或键(key),可以实现固定地引用其他表中的行;例如,在图2.3所示的销售订单表中,可以只包含客户和产品的键,而无需包含所涉及的客户和产品的所有属性。
领取专属 10元无门槛券
手把手带您无忧上云