[已解决] 关于PQ对空行不同处理的奇怪现象

  [复制链接]
查看112525 | 回复121 | 2021-2-18 19:31:45 | 显示全部楼层 |阅读模式
如图所示,对源1和源2进行ETL。

同样时空行,源1有6行,PQ直接忽略;源2有1行,但PQ却保留。

请教各位大神:
1、PQ为何对源1能忽略空行而对源2予以保留?
2、如何用Table家族的M函数,过滤掉空行,之后再提升标题?

谢谢。 10849111524501.png 10849111524502.png
10849111524504.zip (46.89 KB, 下载次数: 0)
回复

使用道具 举报

彬仔 | 2021-2-18 19:37:46 | 显示全部楼层
可以用table.SelectRows去掉空格,Table.PromoteHeaders,提升标题
回复

使用道具 举报

2676446 | 2021-2-18 19:41:46 | 显示全部楼层
M公式:
= Table.SelectRows(步骤名,筛选条件)

筛选条件:
等于:each ([指定列] = "指定值")
不等于:each ([指定列]  "指定值")
大于/大于等于/小于/小于等于:修改以上运算符号
开头为:each Text.StartsWith([指定列], "指定值")
开头不是:each not Text.StartsWith([指定列], "指定值")
结尾为:each Text.EndsWith([指定列], "指定值")
结尾不是:each not Text.EndsWith([指定列], "指定值")
包含:each Text.Contains([指定列], "指定值")
不包含:each not Text.Contains([指定列], "指定值")
且条件:条件1 and 条件2
或条件:条件1 or 条件2
(转载来源:https://www.cnblogs.com/officeplayer/p/13793165.html)
回复

使用道具 举报

蚊少 | 2021-2-18 19:46:46 | 显示全部楼层
  1. = Table.Skip(源, each [Column1]  "日期")

  2. = Table.Skip(源, each [Column1] = null)
复制代码


都可以实现跳过开头的 null
回复

使用道具 举报

磨碎的沙子 | 2021-2-18 19:54:46 | 显示全部楼层
都可以实现跳过开头的 null


感谢指点。

此处Table.Skip和Table.SelectRows,有异曲同工之妙。
测试了下,貌似Table.SelectRows跑起来快那么一丢丢。

Table.Skip(table as table, optional countOrCondition as any)
回复

使用道具 举报

wen | 2021-2-18 19:59:47 | 显示全部楼层
Excel会把任何使用过的区域都纳入到UsedRangeUsedRange(VBA中的对象)里,你在VBA编辑界面的Immediate窗口输入命令
  1. ?sheet1.usedrange.address
复制代码
就能看出来了为什么PQ会读取不同的区域了。
10849111524503.png
回复

使用道具 举报

麦兜 | 2021-2-18 20:05:47 | 显示全部楼层
Excel会把任何使用过的区域都纳入到UsedRangeUsedRange(VBA中的对象)里,你在VBA编辑界面的Immediate窗口 ...


感谢指点,VBA还是很强大了。

自从有了PQ,很久没用宏了。
回复

使用道具 举报

咖菲猫 | 2021-6-10 13:12:48 来自手机 | 显示全部楼层
向楼主学习
回复

使用道具 举报

raykwong | 2021-7-16 12:01:42 来自手机 | 显示全部楼层
学习下
回复

使用道具 举报

刘文钟 | 2021-7-28 08:16:51 来自手机 | 显示全部楼层
我也来支持一下,这里的老师和其他机构不一样,其他就是让付费。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则