【Power Query】List.Select 筛选列表

List.Select 筛选列表

——在列表中返回满足条件的元素

List.Select(列表,判断条件)
不是列表的可以转成列表再筛选,例如 Record.ToList

不同场景的判断条件参考写法

(1)单条件筛选

列表中小于50的数字
= List.Select({1,99,8,98,5},each _<50)

(2)多条件筛选【或】

列表中小于50或大于98的数字 【x<50,x>98】
= List.Select({1,99,8,98,5},each _<50 or _>98)

(3)多条件筛选【且】

<think>嗯,用户问的是如何在Power Query中去除列表中的null值。首先,我需要回忆一下Power Query中处理列表的方法。记得Power Query使用M语言,里面有很多函数可以处理列表。 首先,用户可能有一个包含null值的列表,想要清理这些数据。可能的情况是他们在处理数据源时,某些行或列有空值,导入到Power Query后变成了null。需要找到合适的方法来过滤掉这些null。 接下来,我需要考虑M语言中处理列表的函数。List.RemoveNulls这个函数应该就是专门用来去除列表中的null值的。没错,这个函数应该可以直接应用在列表上,返回一个新列表,不含任何null元素。 然后,应该举一个例子来说明。比如,用户有一个列表像{1, null, 3, null, 5},应用List.RemoveNulls之后得到{1,3,5}。这样用户就能直观地看到效果了。 不过,用户可能不仅想知道基本的用法,还想了解在实际操作中的步骤。比如如何在Power Query的界面中操作,或者如何写M代码。这时候需要分步骤说明。例如,在Power Query编辑器中,可以通过添加自定义列或者转换现有的列,使用List.RemoveNulls函数。 另外,可能还需要考虑其他相关函数,比如List.Select,用户可以用它来更灵活地筛选元素,比如过滤掉null或者空字符串。不过用户的问题明确是关于null的,所以主要介绍List.RemoveNulls,但提到List.Select作为备选方案可能会有帮助。 还要注意,有时候数据中的null可能以不同的形式存在,比如数据库中的NULL或者导入时的空字符串,需要确认用户的数据中null的具体表现形式。但一般来说,Power Query中的null就是M语言中的null,所以List.RemoveNulls应该有效。 另外,可能需要提醒用户,如果处理的是表格中的列而不是列表,步骤会有所不同。比如使用Table.RemoveRowsWithNulls或者对某一列进行过滤。但用户的问题明确提到是list,所以可以专注于列表的情况。 总结一下,回答应该包括以下几个部分: 1. 使用List.RemoveNulls函数直接去除null。 2. 提供一个具体的示例,包括代码和结果。 3. 分步骤说明在Power Query编辑器中的操作步骤,比如添加自定义列或使用界面操作。 4. 可能提到List.Select作为替代方法,以增加灵活性。 需要确保步骤清晰,用户能够跟随操作。同时,检查是否有语法错误,比如函数名称的大小写是否正确,M语言是否区分大小写,记得函数是大写开头的,比如List.RemoveNulls。 另外,考虑到用户可能不熟悉M语言,可能需要解释如何在高级编辑器中编写这些代码,或者如何通过界面操作调用这些函数,比如在“添加列”或“转换”选项卡中找到相关功能。 最后,确保回答准确,没有误导用户,所有提到的函数和步骤都是真实存在的,并且适用于用户提到的Power Query版本。可能需要确认不同版本之间的差异,但通常这些基本函数在多数版本中都存在。</think>在 Power Query 中去除列表List)中的 `null` 值,可以通过以下步骤实现: --- ### **方法 1:使用 `List.RemoveNulls` 函数** 这是最直接的方法,专门用于移除列表中的 `null` 元素。 **语法**: ```powerquery List.RemoveNulls(list) ``` **示例**: - 原始列表:`{1, null, 3, null, 5}` - 操作:`List.RemoveNulls({1, null, 3, null, 5})` - 结果:`{1, 3, 5}` **实际操作步骤**: 1.Power Query 编辑器中,选择需要处理的列。 2. 进入 **转换(Transform)** 或 **添加列(Add Column)** 选项卡。 3. 使用自定义公式(或直接输入): ```powerquery = List.RemoveNulls(你的列表列名称) ``` --- ### **方法 2:使用 `List.Select` 函数** 通过条件筛选非 `null` 值,灵活性更高。 **语法**: ```powerquery List.Select(list, each _ <> null) ``` **示例**: - 原始列表:`{"A", null, "B", null}` - 操作:`List.Select({"A", null, "B", null}, each _ <> null)` - 结果:`{"A", "B"}` **适用场景**: 如果需要更复杂的过滤条件(例如同时排除 `null` 和空字符串),可修改条件: ```powerquery List.Select(列表, each _ <> null and _ <> "") ``` --- ### **方法 3:界面操作(适合新手)** 如果不想写代码,可通过 Power Query 图形界面操作: 1.列表转换为表格(使用 **“到表”(To Table)** 转换)。 2. 在生成的表格中,筛选掉包含 `null` 的行。 3. 若需要恢复为列表,使用 **“聚合列”(Aggregate Column)** 或其他方式。 --- ### **注意事项** 1. **数据类型一致性**:确保列表中所有非 `null` 元素类型相同(例如全为文本、全为数字)。 2. **嵌套列表**:如果列表包含嵌套结构(如子列表),需递归处理。 通过以上方法,可高效清除列表中的 `null` 值,优化后续数据分析流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值