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

如何用Excel AutoFilter同时筛选两列含指定值的行并保留数据结构?

实现B列或C列含特定值的筛选方案

可以通过以下两种变通方法实现需求,同时保留数据集的排序与结构:

方案1:辅助列+手动筛选(无需VBA)

  • 在数据区域右侧插入新列(例如S列),在该列的第一个数据行(如S2)输入公式:
    =OR(ISNUMBER(SEARCH("102",B2)),ISNUMBER(SEARCH("102",C2)))
    
  • 下拉填充公式至数据最后一行,公式会为符合条件的行返回TRUE,不符合的返回FALSE
  • 对该辅助列筛选TRUE,即可只显示B列或C列包含102的行

方案2:修改VBA代码实现自动化筛选

写法1:利用AutoFilter的「或」运算符

直接调整原代码,添加C列的筛选条件并使用xlOr运算符:

Sub Filter_Or_Criteria()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.ActiveSheet
    
    Dim lastRow As Long
    lastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row
    Dim rng As Range
    Set rng = ws.Range("A1:R" & lastRow) '需包含表头,AutoFilter依赖表头识别列
    
    '清除现有筛选状态
    If ws.AutoFilterMode Then ws.AutoFilterMode = False
    
    '设置筛选规则:B列(Field:=2)含102 或 C列(Field:=3)含102
    rng.AutoFilter Field:=2, Criteria1:="*102*", Operator:=xlOr, _
                   Field:=3, Criteria2:="*102*"
End Sub

写法2:高级筛选(适配更复杂条件场景)

如果后续需要扩展更多筛选条件,高级筛选更稳定:

Sub AdvancedFilter_Or_Criteria()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.ActiveSheet
    
    Dim lastRow As Long
    lastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row
    Dim dataRng As Range
    Set dataRng = ws.Range("A1:R" & lastRow)
    
    '创建临时条件区域(放在数据下方,执行后自动清理)
    Dim criteriaRng As Range
    Set criteriaRng = ws.Range("A" & lastRow + 2 & ":C" & lastRow + 3)
    '注意:替换下面的「B列表头」「C列表头」为你表格中对应列的实际表头文字
    criteriaRng.Cells(1, 2).Value = "B列表头"
    criteriaRng.Cells(2, 2).Value = "*102*"
    criteriaRng.Cells(1, 3).Value = "C列表头"
    criteriaRng.Cells(2, 3).Value = "*102*"
    
    '清除现有筛选
    If ws.AutoFilterMode Then ws.AutoFilterMode = False
    
    '执行原地高级筛选
    dataRng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=criteriaRng
    
    '清理临时条件区域
    criteriaRng.ClearContents
    criteriaRng.Delete Shift:=xlUp
End Sub

方案对比

  • 方案1适合手动操作场景,无需代码,直观易维护
  • 方案2适合自动化需求,其中AutoFilter写法简洁高效,高级筛选更适配复杂多条件场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:01:22