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

Excel技巧:如何基于多列“Yes”返回对应行

按指定标题组合筛选含"Yes"的行解决办法

一、Excel里的操作方式

1. 单标题筛选(比如提取Heading1为"Yes"的所有行)

最直接用自带筛选功能:

  • 点击表格任意单元格,按快捷键Ctrl+Shift+L开启筛选
  • 点击Heading1列的下拉箭头,只勾选"Yes"选项即可

也可以用公式标记目标行:在空白列(比如H列)的H2单元格输入=IF(A2="Yes",ROW(),""),下拉填充后,筛选H列的非空值,对应的行就是你要的结果。

2. 多标题同时满足(比如Heading2和Heading3均为"Yes")

方法1:组合筛选

开启筛选后,先在Heading2列勾选"Yes",再在Heading3列勾选"Yes",系统会自动保留同时符合两个条件的行。

方法2:公式标记

在空白列的首行(比如H2)输入=IF(AND(B2="Yes",C2="Yes"),"符合",""),下拉填充后,筛选该列的"符合"值即可。如果要换其他组合(比如Heading5和Heading6),把公式里的B2、C2换成对应列的单元格(E2、F2)就行。

二、Python(Pandas)实现方式

假设你已经将表格数据读取到了DataFrame对象df中:

1. 单标题筛选

# 提取Heading1为"Yes"的行
result = df[df['Heading1'] == 'Yes']
print(result)

2. 多标题同时满足

# 提取Heading2和Heading3均为"Yes"的行
result = df[(df['Heading2'] == 'Yes') & (df['Heading3'] == 'Yes')]
print(result)

# 提取Heading5和Heading6均为"Yes"的行
result = df[(df['Heading5'] == 'Yes') & (df['Heading6'] == 'Yes')]
print(result)

如果需要频繁切换不同的标题组合,可以写一个通用函数:

def filter_by_headers(df, target_headers):
    # target_headers是要筛选的标题列表,比如['Heading2', 'Heading3']
    condition = True
    for header in target_headers:
        condition = condition & (df[header] == 'Yes')
    return df[condition]

# 调用示例:筛选Heading5和Heading6均为"Yes"的行
result = filter_by_headers(df, ['Heading5', 'Heading6'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:07:24