首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Power Query 真经 - 第 10 章 - 横向合并数据

为了进行【合并】,最好有一个一个表包含唯一的另一个表可以有重复的记录,这被称为一对多关系结构,结构是确保最终得到的结果与所期望的一致的最好方法。...【注意】 Power Query 还支持一对一和多对多的连接。 本例,“SKU” “Inventory” 表包含唯一,而在 “Sales” 表中有重复记录,使用这一连接两边。...这里保留是为了演示这些不包含,因为 “COA” 表没有找到匹配的记录。 10.2.2 右外部连接 功能在 Power Query 叫做:【右外部 (第二个的所有行,第一个的匹配行)】。...为了避免意外产生的笛卡尔积,最好使用分析工具检查 “非重复” 和 “唯一” 的统计数据是否匹配如果 “非重复” 和 “唯一” 两个统计数据匹配,像本案例 “SKU” 一样(都是 “12”...虽然基本模糊匹配可能会导致匹配中出现误报(毕竟匹配到 80% 的相似性),但 Power Query 团队提供了一个默认限制了误报的数量,同时仍提供了模糊匹配功能。

4K20

VLookup及Power Query合并查询等方法大量多数据匹配时的效率对比及改善思路

经过分别对以上4方法单独执行多同时填充Power Query数据合并法单独执行数据刷新)并计算时间,结果如下表所示: 从运行用时来看: VLookup函数和Index+Match函数的效率基本一样...; Lookup函数大批量数据的查找效率最低,甚至不能忍受; Power Query的效率非常高。...那么,如果我们公式也可以做到只匹配一次,后面所需要取的数据都跟着这次匹配的结果而直接得到,那么,效率是否会大有改善呢?...(Match公式),用时约15秒; 同时根据已匹配的位置填充G:L(Index公式全部),用时约1秒(双击填充柄直接出现进度条,不出现“正在计算,##%”过程); 位置和其他数据同时填充...当然,使用公式的方法,即使在一定程度上进行改进,和Power Query相比仍然有很大的差距。因此,在数据量较大,数据处理较为复杂的情况下,建议使用Power Query进行。

3.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

VLookup等方法大量多数据匹配时的效率对比及改善思路

经过分别对以上4方法单独执行多同时填充Power Query数据合并法单独执行数据刷新)并计算时间,结果如下表所示: 从运行用时来看: VLookup函数和Index+Match函数的效率基本一样...; Lookup函数大批量数据的查找效率最低,甚至不能忍受; Power Query的效率非常高。...那么,如果我们公式也可以做到只匹配一次,后面所需要取的数据都跟着这次匹配的结果而直接得到,那么,效率是否会大有改善呢?...(Match公式),用时约15秒; 同时根据已匹配的位置填充G:L(Index公式全部),用时约1秒(双击填充柄直接出现进度条,不出现“正在计算,##%”过程); 位置和其他数据同时填充...当然,使用公式的方法,即使在一定程度上进行改进,和Power Query相比仍然有很大的差距。因此,在数据量较大,数据处理较为复杂的情况下,建议使用Power Query进行。

3.9K50

【Excel新函数】动态数组系列

一、简介 相比Power BI,Power QueryPower Pivot在行列层级运行计算,Excel一直以来主要还是单元格层面上的。...近年Excel提供了动态数组运算能力和一系列相关函数,能够类似于Power BI那样,直接在行列层级运算。一方面节省了公式填充复制的工作量,另一方面为更复杂的计算提供了可能性和便捷性。...FILTER - 根据您定义的标准过滤数据。 SORT - 按指定对一系列单元格进行排序。 SORTBY - 按另一个范围或数组对一系列单元格进行排序。 RANDARRAY - 生成随机数数组。...WRAPCOLS - 根据每行指定的数将行或转换为二维数组。 WRAPROWS - 根据指定的数将行或重新整形为二维数组。 TAKE - 从数组的开头或结尾提取指定数量的连续行或。...无法删除结果数列的任意 动态数组生成的结果,是一个整体,无法像平常excel列那样,删除其中任意的。 3. 不支持超级表和Power Query 预告:下期将会逐步介绍动态数组函数的应用

2.9K40

Power Query 真经 - 第 8 章 - 纵向追加数据

Power BI 没有【查询 & 连接】窗格,建议用户学习一种能在多个程序中都适用的方法做到这一点。...图 8-13 Power Query 如何知道 “TranDate” 应该进入 “Date” 呢 当【追加】两个表时,Power Query 将从第一个查询中加载数据。...如果任何标题不存在于现有,新的将被添加。然后,它将适当的记录填入每个数据集的每一,用 “null” 填补所有空白。...按这个逻辑,这意味着 “TranDate” (出现在三月的查询一月和二月填充为 “null” ,因为 “Jan 2008” 的查询没有 “TranDate” 。...“Date” 列为每个三月记录填充了 “null” ,而 “TranDate” 则保存了本应在 “Date” 中出现的。 解决这个问题的方法如下所示。

6.6K30

Power Query 真经 - 第 3 章 - 数据类型与错误

默认情况下,Power Query 设置数据类型时只预览前 1000 行,这意味着如果数据集中的第一个小数值显示第 1001 行,Power Query 将选择一个【整数】数据类型,导入时对的所有行进行四舍五入...在这种情况下,Power Query 试图 “Item Name” 列上设置数据类型,但是已经不存在了,因为它在上一步已经被重命名为不同的名称了。...3.5 错误 虽然步骤级错误绝对是 Power Query 中最严重的错误,但它们不是用户将在 Power Query 遇到的唯一错误。另一个常见的错误类型是错误。...当应用 “Changed Type” 操作时,Power Query 会尝试获取单元格中提供的,并根据本机用户的【Windows 区域设置】数据类型定义的格式将其转换为【整数】类型。...为了避免对本机电脑造成过重的负担,Power Query 限制了预览窗口中的数据量,并允许用户根据这些预览建立自己的查询。

5.2K20

Power Query 真经 - 第 7 章 - 常用数据转换

【注意】 在这个示例不需要使用【使用区域设置】更改数据类型。由于数据已经存在于 Excel ,无论用户本机的【区域设置】是什么,Power Query 都能正确识别这些数据。...7.3 拆分列 拆分列,是另一种常用操作(特别是在从 “平面” 文件导入时),是根据某种分隔符或模式将数据点从单个拆分出来。...信息只包括标题中,而不在数据内容,如图 7-18 所示。...图 7-18 请记住,这里只是根据标题知道 “Don” 是一个烧烤(Grill)厨师 虽然拆分 “Cooks: Grill/Prep/Line” 列为多行会把员工放到行,但事实是 “厨师” 的类型并不存在于记录...它们的长度是一致的,而且还在筛选区显示可选择的。但如果仔细观察,会发现搜索框上方的弹出菜单会根据的数据类型命名,并提供特定于数据类型的筛选器。 如下所示。

7.2K31

Power Query 真经 - 第 6 章 - 从Excel导入数据

如果不小心单击了【确定】,请关闭 Power Query 编辑器并丢弃查询。本书的意图是让用户在这里获得长期的成功,所以将它加载到 Power Query 之前,先把它格式化为表格格式。...此时,Power Query 再次做了一些关于数据的假设,并自动地应用了几个步骤提升标题和设置数据类型。此时,要做的就是调整数据类型并将数据加载到工作表,按如下操作即可。...“Kind” 显示数据的表包含的是哪种对象。 “Hidden” 告诉用户对象是否可见。 需要注意的另一件事是,“Data” 显示的 “Table” 对象与其他预览数据的颜色不同。...另外,当连接到一个外部工作簿时,Power Query 总是先连接到工作簿的路径,再导航到用户所选择的对象,然后再连接到工作簿。...原 Excel ,她并不包括命名区域内,但作为从工作表读取时,它就显示出来了。如果充满了 “null” ,可以直接选择并将其删除,或者思考下,这里是不是可以直接将它删除呢?

16.3K20

Power Query 真经 - 第 5 章 - 从平面文件导入数据

5.1.2 程序如何解析平面数据 程序解析数据时,需要知道如下三件事。 数据点是否由单个字符、一组字符或一致的宽度分隔。 一个完整的记录和另一个完整的记录是由什么字符或字符分隔的。...【注意】 问问自己,是否曾经 Excel 打开一个 “CSV” 或 “文本” 文件,发现其中一半的日期是正确的,而另一半则显示为文本?...因此,它将该数据视为文本,并将其放置一个单元格程序试图将 45.67 转换为一个。当转换成功后,被放置一个单元格。(如果转换不成功,它将被视为文本)。... Excel ,进入【获取数据】 【查询选项】当前工作簿的【区域设置】,在那里定义【区域设置】。所有新的连接都将使用【区域设置】作为默认创建。...图 5-18 一个不同的,但没有空,是这样吗 在这一的情况下,可以看到,虽然只有一个,但它没有填充空单元格。

5.1K20

BI错误处理。

与 Excel 和 DAX 语言具有IFERROR函数的方式类似,Power Query具有自己的语法测试和捕获错误。...如有关处理Power Query的错误的文章中所述,错误可以出现在步骤或单元格级别。 本文将重点介绍如何根据自己的特定逻辑捕获和管理错误。...Excel 工作簿的此表标准速率中出现 Excel 错误,例如 #NULL!、#REF!和 #DIV/0!。 将此表导入Power Query编辑器时,下图显示了表的外观。...将此新命名 为“所有错误”。表达式 try 将和错误转换为记录指示表达式是否 try 处理错误,以及正确的或错误记录。...可以使用记录展开此新创建的,并通过选择标题旁边的图标查看要展开的可用字段。此操作将公开三个新字段:所有 Errors.HasError - 显示 标准速率 是否出错。

2.7K30

Power Query 真经 - 第 1 章 - 基础知识

现在,如果决定重命名另一,会发生什么?会再次得到一个新的步骤吗?一起来找出答案。就像在 Excel 中有多种方法处理同一个问题一样, Power Query 也有多种方法处理同一个问题。...【注意】 当然,这个功能也它的有另一面。比方说,假设重命名了六个,然后意识到不小心错误的重命名了某个。虽然可以删除这个步骤,但这将删除整个步骤,包括正确的五个重命名操作。...虽然可以单击每一左上方的图标选择适当的数据类型,但这可能会花费相当多的时间,特别是当大量的需要处理时。另一个技巧是让 Power Query 为所有设置数据类型,然后覆盖想更改的数据类型。...【注意】 如果在 Power Query 执行某项转换功能时,会启动一个界面辅助配置,配置完毕后就会在步骤旁出现一个齿轮图标,它将允许用户重新设置这个步骤。...考虑这样一个解决方案,构建了一个 Power Query 查询执行一些重要的数据清洗,将结果放到 Excel 工作表的一个表。然后,根据数据表创建了一堆图表和报告。

4.7K31

使用Power Query时的最佳做

备注若要查看Power Query可用连接器的完整列表,请参阅Power Query的连接器。提前筛选建议始终查询的早期阶段或尽早筛选数据。...可以使用自动筛选菜单显示中找到的的不同列表,以选择要保留或筛选掉的。还可以使用搜索栏帮助查找。还可以利用特定于类型的筛选器,例如日期、日期时间甚至日期时区 的上 一个筛选器。...这些特定于类型的筛选器可帮助你创建动态筛选器,筛选器将始终检索前 x 秒、分钟、小时、天、周、月、季度或年份的数据,如下图所示。 备注若要详细了解如何基于筛选数据,请参阅 按筛选。...Power Query 编辑器,此类操作只需要读取足够的源数据才能填充预览。如果可能,请先执行此类流式处理操作,最后执行任何成本更高的操作。...使用正确的数据类型Power Query的一些功能与所选的数据类型相关。 例如,选择日期时,“添加”菜单的“日期和时间”组下的可用选项将可用。 但如果没有数据类型集,则这些选项将灰显。

3.5K10

Extreme DAX-第 2 章 模型设计

另一个原因是,实际的业务,单个的许多值是相同的;例如,几千或几万种产品往往对应着数以百万计的销售交易记录。此时,列式数据库可以通过仅存储一次特定并记录它所属的行高度压缩数据。...若要实现这一点,模型必须保留指针列表,以跟踪某个到底位于哪一行。当向表添加更多时,计算量显然会显著增加。因此, Power BI 模型,“窄”的表比“宽”的表更高效。...Power BI 模型,通过 Power Query 加载数据时,会将所有数据类型统一转换为 Text。很显然,当您忘记在 Power Query 显式进行类型转换时,数字也会存储为文本。...当一些只在外键列出现而不存在于主键时,关系仍然可以存在。 如图2.5所示,模型会将每个未知的外键的连接到一个空白行。模型不会显示这个空白行,但是报表中会显示。...图2.6 一个活动关系和两个非活动关系 某个特定的计算,可以使用 USERELATIONSHIP 函数来激活非活动关系,同时原有的活动关系计算暂时失效。

3.4K10

Power Query 真经 - 第 11 章 - 处理基于 Web 的数据源

使用 Power Query 的一个非常有趣的场景是,可以利用它从 Web 上抓取与业务相关的数据,并用它丰富自己的公司数据。数据通常以两种不同的方式之一存储 Web 上。 存储在网站的文件。...短暂延迟后,Power Query根据用户的示例输入信息以及其他网页上的数据推断出用户真实的提取意图,并自动填充这一的其他部分。...【警告】 如果用户的 “示例输入” 导致显示大量空,则表示 Power Query 无法确定提取值的正确逻辑。 完成第一后,双击标题将其重命名,如果要添加更多,请单击 “+” 图标。...似乎这不是问题的最糟糕部分,导航过程结束时,表格的一显示为原始文本,另一包装在 元素,这意味着需要进行额外的操作,如图 11-14 所示。...尽管网站尽了很大努力整理数据,但网站上的信息还远远不够完美,可能包含的数据并不完全真实。 另一个问题是数据更新的容易程度。

2.8K30

Power Query技巧:一次填充不同的空行

标签:Power Query 你碰到过要填充空行吗?就像下图1所示的这样。 图1 图1所示的工作表A中有许多空行,要使用每段空行上方单元格的内容填充这些空行,结果应该如下图2所示。...在这点上,Power Query更聪明,它能够识别并使用相应的内容填充空行。 1.单击功能区“数据”选项卡“获取和转换数据”组的“获取数据——来自文件——从工作簿”。...2.弹出的“导入数据”对话框中选择数据所在的工作簿,单击“导入”,在出现的“导航器”中选择工作簿相应的工作表。...3.在出现的“Power Query编辑器”,选择类别“班级”所在的,如下图3所示。...图3 4.Power Query编辑器,单击功能区“转换”选项卡“任意”组的“填充——向下”命令,如下图4所示。 图4 结果如下图5所示。 图5 正是我们想要的结果!

86330

Power Query 真经 - 第 4 章 - Excel 和 Power BI 之间迁移查询

Power Query 可以 Power BI 或 Excel 中使用,很多人一开始就在想到底用哪个平台来使用 Power Query,其实不必为此纠结,总有一天会意识到需要把查询复制到一个另一的...图 4-5 自定义 “WooCommerce” 连接器 Excel 不可用 (译者注:WooCommerce 是一个国际范围著名的电商程序,国内应用较少,连接器将允许 Power BI 可以直接从电商程序获取数据...图 4-17 为什么 “Date” 所有的都显示为 “Error” 阅读错误信息时,可以看到正试图将 “43131” 设置为一个日期。但是这个数字是怎么的呢?...数据将继续存在于 Excel 文件,这意味着 Excel 文件中进行的任何添加、删除或更新都只需简单的刷新即可。 重做之前的例子,但这次选择创建一个与 Excel 文件的连接,而不是复制数据。...唯一的区别是,本例,数据仍然存在于 Excel 文件,数据是从那里导入的,而不是复制它并把数据存储 Power BI 文件。所以现在,如果 Excel 文件移动了。

7.6K20

如何运用Power BI转换物料表(BOM)结构?

这个清单可以是单层的或多层的,因为每个“原”材料也会有它相应的下级物料,以及下下级物料…直到最终分解到最基本的元素,如阳光,空气,铁矿石等等…… 实际应用,我们会根据需要从系统中下载适当层级数的物料表...这里分享一个用Power Query解决的思路--选则使用Power Query主要是因为实际工作,我们要处理的物料清单会有成百上千,每个都是一个独立从系统下载的文件,而且每个清单里的数据量可能都很大...使用Power Query,一切就变得很容易了。 首先将表一读入Power Query。如果是很多张表,可以用文件夹方式读取并合并,用筛选去除不需要的行。 ?...用类似的方法,加入条件“1级”,“2级”,“3级”。 ? 选中“0级-2级 ”3个新建的条件,右键菜单选择填充,向下填充。...(注意:这里没有选到3级是因为3级是最后一级,如果选中它再向下填充会误填了上一级的数) ? 把“0-3级”四个条件都选中,删除其他,以保持页面整洁。 ?

2.1K10

Extreme DAX-第3章 DAX 的用法

以这种方式使用时,Power BI 模型会在后台自动创建一个隐式度量值(implicit measure):隐式度量值是一个聚合函数,能够根据选择的方式对进行聚合运算。...例如, Excel 模型和数据仓库,您可能会遇到一个指示器(indicator),指示器确定某一行数据是否属于“当前年初至今”。同样,这是一个静态解决方案,不会让您得到两个月前的年初至今数据。...当然,还有一些其他方法,比如在 Power Query 的通过输入一些参数(例如,表应跨越哪些年份)创建日期表,不过本书并不打算对此展开讨论。...公式提供了一个使用 FORMAT 函数的范例,该函数可用于应用基于某些的各种格式,本例为日期,同时还可以自定义设置区域格式。 以上公式的结果如图3.6所示。...但是实际上,其他人可能会基于您的模型构建自己的报表。对于你们所有人来说,最好隐藏模型中会遮盖有用表、和度量值的元素。 关系的外键应当隐藏:主键上相同的,并且会正确地筛选关系的另一端。

7.1K20

复杂表源的清洗方法

Excel、Power Query、SQL和Python里,都有同样叫法的功能。个人认为,中文“透视”过于意译,并没能很形象地传达出英文Pivot的本意:围绕枢轴旋转。...Power Query ,关键是选中锚定的维度(),本例为公司。然后选择【转换】——【逆透视】——【逆透视其他】即可。...初始数据加载后我们会发现,第一行和第一有很多空。而直接逆透视会把空开头的行或给删除过滤掉。 首先我们解决纵向的维度。根据上文我们可知,逆透视要先锚定维度。...因此纵向的解决步骤有两步: 最左边的向下填充,解决空问题; 合并最左边两,成为一单一的维度。 经过这两步之后,我们成功将2*2维表转为2*1维表。...Power Query只有向上向下填充,没有横向填充,怎么处理空?我们不妨把表倒转过来——转置,那么横向的问题就转化为纵向问题,就可以重复上述步骤解决了。

2K20
领券