如何根据月份计算唯一数字?

如何根据月份计算唯一数字?

A 列包含数字列表,其中一些是重复的

B 列包含代表月份的 1-12 的数字列表

我需要计算 A 列中唯一数字,其中 B 列中的月份 = 1

例子:

ColumnA ColumnB
123     1
223     2
312     3
412     1
123     1
312     2
123     3

例如,当 B=1 时,123 会出现两次,而 412 在同一个月会出现一次,因此唯一计数应为 = 2

答案1

我知道你想要一个使用 countif 的解决方案,但我不知道是否可以只使用 countif 来完成;因此,作为替代方案,这个 VBa 可以做到

Option Explicit
Sub CountDuplicatesPerMonth()

Dim row As Integer
row = 1

Range("C:C").Value = "" 'clear the results


Do While (Range("A" & row).Value <> "")

    Dim val As String
    val = Range("A" & row).Value

    Dim month As Integer
    month = Range("B" & row).Value

    Range("C" & row).Value = 0

    Dim innerRow As Integer
    innerRow = 1

    Do While (Range("A" & innerRow).Value <> "")

        Dim innerVal As String
        innerVal = Range("A" & innerRow).Value

        Dim innerMonth As Integer
        innerMonth = Range("B" & innerRow).Value

        If (innerVal = val And innerMonth = month) Then
            Range("C" & row).Value = Range("C" & row).Value + 1
        End If

        innerRow = innerRow + 1

    Loop

   row = row + 1

Loop

End Sub


在此处输入图片描述

VBa 运行后

在此处输入图片描述

相关内容