You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel或Python中实现指定规则的多条件区域筛选?

实现特定区域筛选需求的方案(Excel & Python)

Excel 实现方法

方法1:辅助列+筛选

假设数据在A(Name)、B(region)列,输入的筛选区域写在D1单元格(多区域用逗号分隔,比如HK,SG),在C列(辅助列)输入以下公式:

=LET(
    name_regions, FILTER(B:B, A:A=A2),
    input_regions, TEXTSPLIT(D1, ", "),
    name_set, UNIQUE(name_regions),
    input_set, UNIQUE(input_regions),
    IF(
        AND(COUNTA(name_set)=COUNTA(input_set), SUM(--ISNUMBER(MATCH(name_set, input_set, 0)))=COUNTA(name_set)),
        "保留",
        ""
    )

公式逻辑:

  • 提取当前Name对应的所有区域并去重,得到该Name的专属区域集合
  • 拆分输入的筛选区域并去重,得到输入集合
  • 对比两个集合:若完全一致(数量相同且元素全匹配),标记"保留",否则为空

之后直接筛选C列的"保留"即可:

  • 输入SG时,XYZ的区域集合{SG}与输入匹配,标记保留;ABC的集合{HK,SG}不匹配,无标记
  • 输入HK,SG时,ABC的集合与输入完全匹配,标记保留;XYZ的集合不匹配,无标记
  • 输入HK时,无Name的区域集合为{HK},无保留标记

方法2:高级筛选(自定义条件)

无需辅助列,可借助高级筛选的自定义条件区域:

  1. 匹配同时含HK和SG的Name(输入HK,SG时用):
    条件区域D1写region,D2写公式:
    =SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100="HK"))>0 * SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100="SG"))>0
    
  2. 匹配仅含SG的Name(输入SG时用):
    条件区域D2写公式:
    =SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100="HK"))=0 * SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100="SG"))>0
    
  3. 输入HK时,条件区域D2写公式=SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100="HK"))>0 * SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100="SG"))=0,此时无符合条件的Name,筛选结果为空。

Python 实现方法(使用Pandas)

通过分组对比区域集合实现需求:

import pandas as pd

# 示例数据
data = {
    "Name": ["ABC", "ABC", "XYZ"],
    "region": ["HK", "SG", "SG"]
}
df = pd.DataFrame(data)

def filter_by_region(input_regions):
    input_set = set(input_regions.split(", "))
    # 分组获取每个Name对应的区域集合
    name_region_sets = df.groupby("Name")["region"].apply(set).reset_index(name="region_set")
    # 筛选区域集合与输入完全匹配的Name
    result = name_region_sets[name_region_sets["region_set"] == input_set]["Name"].tolist()
    return result

# 测试示例
print(filter_by_region("SG"))  # 输出 ['XYZ']
print(filter_by_region("HK, SG"))  # 输出 ['ABC']
print(filter_by_region("HK"))  # 输出 []

逻辑说明:

  1. 将输入的区域字符串转换为集合,方便对比
  2. 按Name分组,提取每个Name对应的所有区域并转成集合
  3. 筛选出区域集合与输入集合完全匹配的Name,返回结果

内容的提问来源于stack exchange,提问作者Suraj Ghorai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:52:24