过滤出N / A,以便除去N / A和N / A旁边的所有列
我有一组数据,我们需要删除表中#N/A
来显示准确的数据。 请注意,我想删除列的侧面,不仅删除N / A,使数据看起来更整齐。
我的代码下面创build一个设置范围之间的filter,虽然我想删除列中的#N #N/A
相反,它只是把#N/A
列第一列,而不是将其删除。
sht1.ListObjects.Add(xlSrcRange, , xlYes).Name = _ "Table1" sht1.ListObjects("Table1").Range.AutoFilter Field:=9, Criteria1:= _ ">=-1000000000000", Operator:=xlAnd, Criteria2:="<=1000000000000000" sht1.Range("Table1[#All]").Select ''sht1.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1:="=#N/A"
我努力了:
wb1.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1:="=#N/A"
以及其他尚未为我工作的变化。
虽然这对我来说完全没用,因为我的数据是非常有活力和不断变化的。
值得注意的是,这不包括N / A,但我还没有得到这个dynamic范围的工作。
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Criteria1:= _ Array("Nov 13", "Nov 13", "Today", _ ''etc,, ), Operator:= _ xlFilterValues End Sub ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:="#N/A"
imgur.com/a/TqwDz
你有一个公式将date转换为三个值之一:
-
Today
-
Tomorrow
- 任何未来的date
您正在看到#N/A
因为该值不符合这三个选项之一。 可能的原因是: –
- date字段是空的
- date是过去的
- date远在将来
在评论中,你会看到公式=VLOOKUP(Q139,B$2:C$40000,1,0)
,我将在这里做一个大的假设,并假设如下:
- B2是公式
=TODAY()
- B3到B40000是一个公式
=B2+1
(及以上) - C2的值为
Today
- C3有
Tomorrow
的价值 - C4到C40000是一个公式
=B4
(及以后)
它基本上是对这三个值之一的date大查找。
这会造成这个问题,如果我是正确的(我没有进入聊天室),那么我就是一个非常奇妙的过程。
现在如果上述情况是真的,我会build议如下,改变原来的公式=VLOOKUP(Q139,B$2:C$40000,1,0)
=IF(Q139=TODAY(),"Today",IF(Q139=TODAY()+1,"Tomorrow",IF(Q139>TODAY(),Q139,"Discount")))
这个新的公式规定:
- 如果
Q139
等于今天,则输出Today
- 如果
Q139
等于今天+ 1,则输出Tomorrow
- 如果
Q139
大于今天,输出Q139
- 其他输出“折扣”
您可以通过Discount
进行过滤。
这工作,我甚至closures?
这是一个简单的例程,可以达到预期的效果。
Sub test2() Dim c As Range For Each c In ActiveSheet.UsedRange If IsError(c) Then Rows(c.Row).EntireRow.Delete End If Next c End Sub