簡體   English   中英

Excel-在A列中找到一個小於或等於4倍的值並在B列中打印

[英]Excel - find a value in column A that appears less than or equal to 4 times and print in column B

我在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

在此處輸入圖片說明

添加一個幫助器列,並將以下公式放在第二行中:

=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,只需調整一下IF函數即可:)

=IF(COUNTIFS(BE:BE,BE2)<=4,IF(COUNTIFS($BE$1:BE2,BE2)=1,BE2,"0"),"0")

^在這里,BE是您所有數據的存放地,從第2行開始

它能做什么:

  1. 如果名稱出現4次或以下,

  2. 如果這是第一次,“名稱”將出現在列中

  3. 打印名稱
  4. (否則插入0)

要刪除0值,即空行:

  1. 將公式粘貼到與值相同的列上(這樣就可以..)
  2. .. Replace AllCtrl-H )將“ 0”替換為“”(以便可以..)
  3. ..使用Go ToCtrl-G> Special > Blanks來選擇空白行
  4. 刪除(向上移動單元格)

您也可以簡單地過濾出Blank / 0值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM