簡體   English   中英

循環瀏覽一張工作表中的列值,並將另一列中的COUNTIF值粘貼到另一張工作表中

[英]Loop through column values from one sheet and paste COUNTIF value from another column into another sheet

我在Excel文件中有兩張紙,需要從一張紙執行COUNTIF公式,然后將相應的信息粘貼到另一張紙中。 原始工作表的第一列中只有類型,第二列為空。 我試圖遍歷工作表1中的類型,在每個增量工作表中遍歷工作表2中的類型,並將工作表2中的第2列的計數越過工作表1的第2列。

我當前的VBA代碼如下:

Sub TestOE()
    'For loop to go until end of filled cells in 1st column of each sheet
    a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row

    'Loop
    For i = 2 To a
        For j = 2 To b
            If Worksheets("Sheet1").Cells(i, 1).Value = Worksheets("Sheet2").Cells(j, 1).Value Then
                Worksheets("Sheet1").Cells(i, 2).Value = Application.WorksheetFunction.CountIf(Range("B:B"), 1)
            End If
        Next j
    Next i
End Sub

此代碼僅在工作表1的期望結果中粘貼0。

從中提取信息的表格
從中提取信息的表格

工作表中粘貼信息
主表粘貼信息

目標表中的期望結果
主表中期望的結果

您可以簡單地使用sumif函數根據條件對值求和。

這是公式

= COUNTIF(Sheet1!$ A $ 2:$ A $ 20,Sheet2!A2)

如果您想對列B求和

= SUMIF(Sheet1!$ A $ 2:$ A $ 20,Sheet2!A2,Sheet1!$ B $ 2:$ B $ 20)

只需幾個步驟,您就可以在不使用VBA的情況下完成所需的工作,而只需使用數據透視表。 只需執行以下操作。

  1. 選擇您的數據集 ,包括標題。
  2. 單擊插入選項卡,然后單擊數據透視表。 請參閱Office 365的示例
  3. 由於您需要其他工作表,因此將數據透視表設置為“新工作表”。 請參見示例。
  4. 您需要將TYPE字段拖到行中,並將二進制拖到值中。 CountIF與二進制求和相同,因此可以保留為sum。 參見示例

您將獲得與所需的輸出幾乎相同的輸出: 最后結果

暫無
暫無

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

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