我有一个列,其值与下面的示例类似:
| 尺寸|
| --------------|
| 四个|
| 14|
| 124小时|
| 41|
| 4.510|
| 2145|
| 345|
我需要设置一个过滤器来获取包含特定数字的单元格,例如**“4”**,
预期结果为(4 , 1*4 , 4*1 , 3*4*5
)。
如果我使用通配符“*4*
”作为条件,那么它将给予我所有包含“4
”的值,如(1*24 , 4.5*10
),这不是必需的。
下面的代码只查找以我的号码开头的单元格:
Sub AutoFilter_on_number()
Dim ws As Worksheet, rng As Range
Const filterColumn As Long = 29 'column "AC"
Set ws = ActiveSheet
Set rng = ws.Range("A2:AH7000")
rng.AutoFilter Field:=filterColumn, Criteria1:="=4*", Operator:=xlFilterValues
End Sub
3条答案
按热度按时间q3aa05251#
自动过滤号码
q5iwbnjs2#
如果你喜欢使用helper列,这可以通过一个公式来完成:
然后简单地过滤B列结果。
输出:
erhoui1w3#
如果helper列正常:
创建一个公式为
=IF(ISERROR(SEARCH("~*4~*", "*"&A2&"*")),"NO","YES")
的列(假设数据从A2开始)。原始单元格内容用额外的前导和尾随星号括起来(例如
4*1
将是*4*1*
)。现在我们可以确定您感兴趣的单元格包含字符串*4*
。你可以使用这个字符串并设置一个自动过滤器,但是,它有点难看,因此我使用SEARCH
和IF
来检查helper列是否包含*4*
并返回YES
或NO
。现在很容易过滤。请注意,您必须使用前导波浪符来屏蔽星号,以防止Excel将其视为野生字符(在上面的公式或自动筛选条件中使用它时都是如此)。这就是为什么搜索函数的第一个参数是
"~*4~*"
,看起来很奇怪。