我有一列按字母順序排列在A列中的用戶名列表,其中一些列出現多次。 我想在列B中竄改用戶名,如果它出現少於或等於4次。Excel - 在A列中查找小於或等於4次的值並在列B中打印
我是否需要一個數組來查看列中所有不同的用戶名值才能找到出現小於或等於4次的值?
我有一列按字母順序排列在A列中的用戶名列表,其中一些列出現多次。 我想在列B中竄改用戶名,如果它出現少於或等於4次。Excel - 在A列中查找小於或等於4次的值並在列B中打印
我是否需要一個數組來查看列中所有不同的用戶名值才能找到出現小於或等於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
不知道這是否令人印象深刻或過度。 –
@DavidAndreiNed我也不確定。 –
無需幫手列或VBA,只是一點點微調的IF函數:)
=IF(COUNTIFS(BE:BE,BE2)<=4,IF(COUNTIFS($BE$1:BE2,BE2)=1,BE2,"0"),"0")
^這裏,BE是所有你的數據是,在開始第2行
作用:
如果名稱出現4個或更少倍,
如果這是第一次的名稱出現在列
要刪除0值,即空行:
Replace All
(Ctrl-H)「0」s with nothing「」(這樣你就可以...)Go To
(按Ctrl-G)> Special > Blanks
你也可以簡單地過濾掉空白/ 0值的空行
謝謝,我已經改進了答案,以防人們不想要空白處 –
你想要列表包括只有唯一的名稱,或者每次出現一個名稱? –
對不起,只有唯一的名字。所以我真的只是B列填充每個用戶名,如果它出現小於或等於4次在A –