Excel – 在列A中查找小于或等于4次的值并在列B中打印
我有一列按字母顺序排列在A列的用户名,有些出现了很多次。 如果它出现less于或等于4次,我想在列B中引用用户名。
我是否需要一个数组来查看列中所有不同的用户名值才能find出现小于或等于4次的值?
考虑:
Sub dural() Dim A As Range, B As Range, v As String, K As Long Set A = Intersect(Range("A:A"), ActiveSheet.UsedRange) Set B = Range("B:B") K = 1 With Application.WorksheetFunction For Each aa In A v = aa.Value If v <> "" Then If .CountIf(A, v) <= 4 Then If .CountIf(B, v) = 0 Then Cells(K, "B").Value = v K = K + 1 End If End If End If Next aa End With End Sub
添加一个帮手列,并在第二行中放置以下公式:
=IF(AND(COUNTIF(A:A,A2)<=4,COUNTIF($A$2:A2,A2)=1),MAX($B$1:B1)+1,"")
并抄下来:
此时您可以过滤非空白单元格并将其复制到另一个范围。
如果你想使用一个公式来获得列表,然后把它放在另一列的行2:
=IFERROR(INDEX(A:A,MATCH(ROW(1:1),B:B,0)),"")
并抄下来。
不需要帮助列或VBA,只是一些精细调整的中频function:)
=IF(COUNTIFS(BE:BE,BE2)<=4,IF(COUNTIFS($BE$1:BE2,BE2)=1,BE2,"0"),"0")
在这里,BE是第2行开始的所有数据
它能做什么:
-
如果名称出现4次或更less,
-
如果这是名称第一次出现在列中
- 打印名称
- (否则插入0)
要删除0值,即空行:
- 将公式粘贴到与列相同的列上(这样可以…)
- ..
Replace All
( Ctrl-H )“0”没有任何“”(这样你可以..) - ..使用
Go To
( Ctrl-G )> Special > Blanks
select空行 - 删除(向上移位单元格)
您也可以简单地过滤出空白/ 0值