Power BI中如何通过文本字段内的#标签筛选表格数据
三类标签筛选解决方案建议
场景一:用Excel实现(适合办公场景)
假设备注字段在B列,表格数据范围为A:C(含项目ID):
- 筛选无#标签的项目:
使用FILTER函数匹配不含#的行,公式:=FILTER(A:C, ISERROR(SEARCH("#", B:B)))
原理:SEARCH找不到#会返回错误,ISERROR标记这类行,FILTER提取对应数据。 - 筛选仅含#AB标签的项目:
需要同时满足「包含#AB」和「备注里只有1个#标签」,公式:=FILTER(A:C, ISNUMBER(SEARCH("#AB", B:B)) * (LEN(B:B) - LEN(SUBSTITUTE(B:B, "#", "")) = 1))
原理:SUBSTITUTE替换所有#后,通过长度差统计#的数量,确保只有1个且是#AB。 - 筛选含#AB或#CD(或两者都有)的项目:
用逻辑或匹配两种标签,公式:=FILTER(A:C, ISNUMBER(SEARCH("#AB", B:B)) + ISNUMBER(SEARCH("#CD", B:B)) > 0)
原理:两个ISNUMBER结果相加,只要有一个为真(返回1),总和就大于0,筛选对应行。
场景二:用Python Pandas实现(适合批量/复杂数据处理)
先导入表格数据(以Excel为例):
import pandas as pd df = pd.read_excel("你的表格文件路径.xlsx")
- 筛选无#标签的项目:
说明:df_no_tag = df[~df["备注"].str.contains("#", na=False)]~表示取反,na=False忽略空值行,避免报错。 - 筛选仅含#AB标签的项目:
说明:同时满足「包含#AB」和「#出现次数为1」两个条件。df_only_ab = df[(df["备注"].str.contains("#AB", na=False)) & (df["备注"].str.count("#") == 1)] - 筛选含#AB或#CD(或两者都有)的项目:
说明:用正则表达式的df_ab_cd = df[df["备注"].str.contains("#AB|#CD", na=False)]|实现逻辑或,匹配包含任意一个标签的行。
内容的提问来源于stack exchange,提问作者Lorenzo
相关产品推荐
相关产品推荐

