如何编写Power Query代码筛选仅保留以数字开头的列?
在Power Query中筛选保留名称以数字开头的列
以下是实现该需求的Power Query M代码方案:
完整代码示例
let // 替换为你的实际数据源(比如Excel表、CSV导入结果等) Source = Excel.CurrentWorkbook(){[Name="表1"]}[Content], // 获取所有列名组成的列表 ColumnNames = Table.ColumnNames(Source), // 筛选首字符为数字的列名 FilteredColumns = List.Select(ColumnNames, each Character.IsDigit(Text.Start(_, 1))), // 仅保留筛选后的列 Result = Table.SelectColumns(Source, FilteredColumns) in Result
代码细节解释
Table.ColumnNames(Source):提取原数据表的所有列名,返回一个文本类型的列表List.Select(...):遍历列名列表,对每个列名执行判断逻辑:Text.Start(_, 1):截取列名的第一个字符Character.IsDigit(...):判断该字符是否为数字,返回布尔值
Table.SelectColumns(Source, FilteredColumns):从原数据源中保留筛选后的目标列
特殊场景处理
如果数据源存在空列名(长度为0),可以在筛选条件中增加长度判断,避免运行报错:
FilteredColumns = List.Select(ColumnNames, each Text.Length(_) > 0 and Character.IsDigit(Text.Start(_, 1)))
内容的提问来源于stack exchange,提问作者chi005
相关产品推荐
相关产品推荐

