Power Query Table.SelectRows()函数 数据筛选

目录

  • [一. 根据数值筛选](#一. 根据数值筛选)
    • [1.1 筛选指定字段大于指定值的数据](#1.1 筛选指定字段大于指定值的数据)
    • [1.2 筛选出大于平均值的数据](#1.2 筛选出大于平均值的数据)
  • [二. 根据字符串筛选](#二. 根据字符串筛选)
    • [2.1 指定字符串 `开头` 或 `结尾`](#2.1 指定字符串 开头结尾)
    • [2.2 字符串是否包含](#2.2 字符串是否包含)
    • [2.3 字符串是否相等](#2.3 字符串是否相等)
    • [2.4 字符串是否为空](#2.4 字符串是否为空)
    • [2.5 多条件组合](#2.5 多条件组合)
  • [三. 根据列表筛选](#三. 根据列表筛选)

一. 根据数值筛选

1.1 筛选指定字段大于指定值的数据

  • 筛选数学字段 > 80 并且 英语字段 > 70 的数据
js 复制代码
= Table.SelectRows(更改的类型, each [数学] > 80 and [英语] > 70)

1.2 筛选出大于平均值的数据

🔷原始数据

🔷添加步骤,分别计算出数学和英语的平均分

js 复制代码
= List.Average(数据[数学])

🔷最后再过滤即可

js 复制代码
= Table.SelectRows(数据, each [数学] > 数学平均 and [英语] > 英语平均)

二. 根据字符串筛选

2.1 指定字符串 开头结尾

  • Comparer.OrdinalIgnoreCase用来忽略大小写
js 复制代码
= Table.SelectRows(
    更改的类型,
    each Text.StartsWith([列名], "Request")
)

= Table.SelectRows(
    更改的类型,
    each Text.StartsWith([列名], "request", Comparer.OrdinalIgnoreCase)
)
js 复制代码
= Table.SelectRows(
    更改的类型,
    each not Text.StartsWith([列名], "doservice")
)
js 复制代码
= Table.SelectRows(
    更改的类型,
    each Text.EndsWith([列名], ".txt")
)

2.2 字符串是否包含

js 复制代码
= Table.SelectRows(
    更改的类型,
    each Text.Contains([列名], "Test")
)

= Table.SelectRows(
    更改的类型,
    each not Text.Contains([列名], "Test")
)

2.3 字符串是否相等

js 复制代码
= Table.SelectRows(
    更改的类型,
    each [列名] = "OK"
)

= Table.SelectRows(
    更改的类型,
    each [列名] <> "Error"
)

2.4 字符串是否为空

js 复制代码
= Table.SelectRows(
    更改的类型,
    each [列名] = ""
)

= Table.SelectRows(
    更改的类型,
    each [列名] <> null and [列名] <> ""
)

2.5 多条件组合

js 复制代码
= Table.SelectRows(
    更改的类型,
    each Text.StartsWith([列名], "Request") and not Text.Contains([列名], "Test")
)
js 复制代码
= Table.SelectRows(
    更改的类型,
    each List.AnyTrue({
        Text.StartsWith([负责人], "张"),
        Text.StartsWith([负责人], "李")
    })
)

三. 根据列表筛选

🔷筛选姓名列为指定List中的值

js 复制代码
= Table.SelectRows(
    更改的类型,
    each List.Contains({"张三","李四","王五"}, [姓名])
)

🔷在工作当中,名单一般会来自一张指定的表

假设:

  • 有一个表叫 白名单
  • 里面有一列 姓名
js 复制代码
let
    名单 = 白名单[姓名],
    结果 =
        Table.SelectRows(
            更改的类型,
            each List.Contains(名单, [姓名])
        )
in
    结果

💥如果列表中的数据有很多的话,更加推荐使用左外连接去查询,效率更高。

相关推荐
fengyehongWorld8 天前
Power Query 分组统计
power query
fengyehongWorld8 天前
Power Query 带有合并单元格的二维表逆透视为一维表
power query
fengyehongWorld9 天前
Power Query 的简介 与 打开方式
power query
weixin_318088111 个月前
Power query代替PowerBI加载数据到excel
excel·powerbi·power query
木木子99997 个月前
Power Query合并数据
power query·数据合并
—Miss. Z—2 年前
Power Query抓取多页数据导入到Excel
excel·power query
剑 云2 年前
办公数据分析利器:Excel与Power Query透视功能
大数据·信息可视化·power query