平时我们经常用到需要根据一定的需求在数据中把符合需求的数据提取出来,那我们看下在Power Query中是如何进行操作的。...我们知道,在Power Query中数据是有多种类型的,那提取的方式也是各不一样。 以下是一张整体的有关数据提取可能涉及到的函数集。可以点击查看大图 ? 我们今天来主要看下文本中的数据提取。 ?...我们知道在Power Query中对于数据类型规定的比较严格,所以我们在使用函数的时候也要时刻注意着数据类型,包括函数参数的类型,函数生成的最终类型。...在Power Query菜单中也可以进行部分操作。 ?...Query中的“#”转义字符?)。
我们了解到在Power Query中提取数据会因为数据格式不同而提取的方法不同。 ? 前我们讲了数据提取的文本篇,这次我们来看下数值格式的数据如何进行提取。 ? 数值的提取主要是进位的问题。...在Power Query中对于进位有着比Excel更多的选择。 1....向下舍去(类似Excel中的Rounddown) Number.RoundDown(number as nullable number, optional digits as nullable number...向上进位(类似Excel中的Roundup) Number.RoundUp(number as nullable number, optional digits as nullable number)...向0进位(这个在Excel中目前没有对应函数) Number.RoundTowardZero(number as nullable number, optional digits as nullable
合并查询在Power Query中是很成熟的应用,相当于SQL中的各种JOIN(抽时间会写几篇SQL的join,算是SQL的小核心)。...但同时,在Power Query中合并查询是一个常见的影响刷新效率的因素。在我的工作中,经常会遇到对一些非文件夹性质的数据源进行合并查询操作,所以我一直在想,有没有办法可以对其进行优化。...当我刷新这个查询时,在SQL Server 事件探查器中可以看到两个过程的持续时间: Progress Report End/25 Execute SQL – 40 秒 Progress Report...读取数据是立刻发生的,几乎不占用时间,相比之下,最开始的两次查询中读取数据的时间甚至要比执行SQL语句花费的时间更长。...参考文档: Chris Webb https://blog.crossjoin.co.uk/2020/05/31/optimising-the-performance-of-power-query-merges-in-power-bi-part
今天我们来了解下,在Power Query中如何提取需要的时间。 日期作为业务维度里面一个很重要的因素,大部分的业务分析都离不开时间这个条件,所以对于时间的提取的准确性就显得尤为重要。...---- 在转换获取中,我们也可以通过快速方式及菜单方式进行转换格式获取。 ---- 1....提取日期 一般情况下,分析业务很大一部分都是用天为最小计量单位,但是一般导入到PQ里面的日期数据格式,都是日期时间格式DateTime,后面会带有0:00:00的时间后缀。...DateTime.Date(datetime as any) as nullable date 因为参数中是any,所以参数内的格式可以是日期,日期时间,时间区域等格式。...提取季度 Date.QuarterOfYear(datetime as any) as nullable number 提取季度数,生成的是数值1-4 Date.StartOfQuarter(datetime
(五)替代指定数据提取。 1....找到目标值并用指定值替换后提取 List.ReplaceValue(list as list, oldValue as any, newValue as any,replacer as function
今天我们继续来了解下,在Power Query中如何提取需要的时间。 1....获取当前时间 DateTime.LocalNow() 类似Excel中的Now函数 DateTime.FixedLocalNow() 这个函数虽然解释是能够固定数值,但是目前还没找到前提条件,如果有高手能够解释下固定时间的前提操作...Date.WeekOfMonth(datetime as any, optional firstDayofWeek as nullable Day.Type) as nullable number 返回所处月份中的第几周...返回的格式为原始日期数据格式。...返回的格式为原始日期数据格式。 Date.EndOfWeek(#date(2018,11,11))=2018/11/11 星期日
表名为列表,第一步骤名称为源 (一)从头开始提取 1....如果为指定条件,则提取的数据为直到不满足条件前的数据。...此外涉及到列表,所以在进行操作比较的时候需要用到each,_代表的是列表中的每一个值,所以用列表中从头开始的每一个值去和提取 1....,如果列表包含null值,则在计算时忽略;如果null是唯一值,则返回null;如果列表数据为偶数,则返回较小值;如果列表为偶数,而且都是数值(包括时间日期等可转换数值),则返回2个的平均值。
(六)删除指定数据进行提取 1....删除指定数据进行提取 List.RemoveRange(list as list, index as number, optional count as number) as list 第1参数为数据列表...删除空值后进行提取 List.RemoveNulls(list as list) as list 对于列表中的空值进行删除,生成一个新的列表,只有1个参数。也可以理解为对一个列表选择不等于空值。...批量删除匹配值后提取 List.RemoveMatchingItems(list1 as list, list2 as list, optional equationCriteria as any) as...根据新列表删除旧列表中的值 List.RemoveItems(list1 as list, list2 as list) as list 第1个参数是需要被替换的列表;第2个参数是去要删除的值列表;返回生成的是新列表格式
(四) 根据条件提取数据 1....根据条件从列表中进行提取 List.Select(list as list, selection as function) as list 第二个是一个函数公式,返回的是也是一个列表。...跳过指定数据提取 List.Skip(list as list, optional countOrCondition as any) as any 如果第2参数省略,则默认跳过第一个值;如果第2参数为数值...根据区间来提取 List.Range(list as list, offset as number, optional count as nullable number) as list 第2参数为偏移量...根据包含文本来提取 List.FindText(list as list, text as text) as list 第1参数为列表,第2参数为文本格式,返回的是列表格式。
如果要更换标题需要涉及到的函数是Table.RenameColumns;获取标题的函数Table.ColumnNames。
(一)从表尾开始提取 1....如第2参数是条件,则从尾开始匹配,返回满足的行,直到不满足为止。
删除指定数据提取 ? 1....删除错误行提取 Table.RemoveRowsWithErrors(table as table, optionalcolumns as nullablelist) as table 第1参数是需要操作的表...删除指定行提取 Table.RemoveRows(table as table,offset as number,optional count as nullable number)as table 参数...解释:从表中偏移2行后再删除1行,也就是删除的是原表的第3行。 3....删除匹配行提取 Table.RemoveMatchingRows(tableas table,rows as list,optional equationCriteria as any) as table
按错误的信息提取 Table.SelectRowsWithErrors(tableas table,optional columns as nullable list)as table 第1参数为需要操作的表...按表格偏移提取 Table.Range(table as table,offset as number,optional counts as nullable number)as table 第1参数为需要操作的表...按文本匹配后提取 Table.FindText(table as table,text as text)as table 第1参数是需要操作的表;第2参数为需要查找的文本;返回的也是一个表格式。...因为此数据源相对简单,所以返回了学科中数学包含"数",所以返回这一行。
关于优化Power BI中的Power Query合并查询效率,之前写过三篇文章: 优化Power BI中的Power Query合并查询效率,Part 1:通过删除列来实现 优化Power BI中的...优化Power BI中的Power Query合并查询效率,Part 3:Table.Join和SortMerge 针对文中说到的256MB内存限制的问题,有朋友提出了质疑: ?...作者给出了原文链接,所以先找到原文看看是怎么说的: https://blog.crossjoin.co.uk/2020/05/21/monitoring-power-query-memory-usage-with-query-diagnostics-in-power-bi.../ 在这篇文章中,作者提到2020年4月PowerBI的更新中Query Diagnostics功能被加强: https://docs.microsoft.com/en-us/power-query/querydiagnostics...参考文档: https://blog.crossjoin.co.uk/2020/05/21/monitoring-power-query-memory-usage-with-query-diagnostics-in-power-bi
样例表格: (一)从表头开始提取 1....如第2参数是条件,则从头开始匹配,返回满足的行,直到不满足为止。
样例表格: (一)根据值大小提取 1.
前两篇文章中: 优化Power BI中的Power Query合并查询效率,Part 1:通过删除列来实现 优化Power BI中的Power Query合并查询效率,Part 2:合并查询前or后删除多余的列有区别吗...在之前的文章中提到过,之所以合并查询大数据量的文件会比较慢是因为计算过程中会把表存入内存中。...另外,当你准备从两个不同的数据库中导入数据并进行合并查询,比如SQL Server 和 Oracle,两者都支持从文件夹中获取数据并排序,这个过程中的排序的时间,很有可能会小于使用Table.Join和...zh-cn/powerquery-m/table-join https://blog.crossjoin.co.uk/2020/06/07/optimising-the-performance-of-power-query-merges-in-power-bi-part...-3-table-join-and-sortmerge/ https://radacad.com/power-query-library-of-functions-shared-keyword
样例表格: (一)提取表标题 Table.ColumnNames(table as table) as list 从指定表中生成一个标题列表,只有为一个参数表格式,返回的是一个列表格式。...例: Table.ColumnNames(数据)={"姓名","成绩","学科"} 解释:在其他查询中提取标题,表名称为查询名称。...Table.ColumnNames(源)={"姓名","成绩","学科"} 解释:在本查询中提取标题,表名称为步骤名称。...(二)提取表字段数 Table.ColumnCount(table as table) as number 从指定表中生成一个字段数,返回的是一个数字格式。...(三)提取表记录数 Table.RowCount(table as table) as number 提取表中的记录数,也就类似于行数,返回的是一个数字格式。
按条件跳过后提取 Table.Skip(table as table, countOrCondition as any) as table 第1参数是需要操作的表;第2参数是指定要跳过的行,是数字或者条件...按条件筛选行后提取 Table.SelectRows(table as table, condition as function) as table 参数1位需要操作的表;参数2是筛选的条件,为一个函数...随后用拆分后的这个列表去和另外一个含有关键词的列表去比较,List.ContainsAny代表的是任何匹配,也就是姓名拆分后的列表1和关键词的列表2只要有同一个关键词则作为成立的条件进行提取。...Table.SelectRows(源, each List.Contains({"张三","张四","李四"},[姓名]))= 解释:这次把条件倒过来了,通过一个姓名列表去筛选源表中符合条件的数据。...Table.SelectColumns(源, List.FindText(Table.ColumnNames(源),"成"))= 解释:返回本表中包含“成”的字段。
对于Power BI使用者来说,报告最后更新的日期时间是个挺重要的信息。在报告中一般显示在四个边角处,如下图所示。...通过Power Query 可以轻松获取数据刷新最后时间戳,并生成一个单列单行的独立表格。下面介绍三种方式。...这种方法的不足在于,以下三个场景可能造成时间的时区不统一: 在本地刷新后发布到Power BI Service,返回的是本地电脑的时间; 在云端设置计划刷新(不涉及网关),返回的是云端服务器所在国家的时间...首先在Power Qury 新建一个空白查询,然后点击查询编辑器,输入以下代码,就会创建一个生成最新更新时间日期的函数查询。...报表界面展示 在Power BI报表界面上显示该日期,最好用DAX建一个度量值,方便后续其他度量值的调用。度量值写法如下所示。