Excel 如何根据函数中的其他列计算唯一用户数?

Excel 如何根据函数中的其他列计算唯一用户数?,excel,vba,count,duplicates,Excel,Vba,Count,Duplicates,我有一个使用这个设置的数据集,在这里我有不同的周数、主机和用户(我将重点关注) 我需要做的是能够统计每个主机每周的唯一用户数。我将每周更新这个列表,所以我想使用一个公式,我可以把它放入一个宏来自动化,而不是做一个透视表 到目前为止,我所拥有的: SUMPRODUCT(COUNTIFS(Active_Users_Master!$A:$A;"9";Active_Users_Master!$D:$D;'C:\Users\wra\Desktop\host.xlsx'!host1)) 上面统计了第9周的

我有一个使用这个设置的数据集,在这里我有不同的周数、主机和用户(我将重点关注)

我需要做的是能够统计每个主机每周的唯一用户数。我将每周更新这个列表,所以我想使用一个公式,我可以把它放入一个宏来自动化,而不是做一个透视表

到目前为止,我所拥有的:

SUMPRODUCT(COUNTIFS(Active_Users_Master!$A:$A;"9";Active_Users_Master!$D:$D;'C:\Users\wra\Desktop\host.xlsx'!host1))
上面统计了第9周的用户数量,并将主机名与我在另一个excel中创建的命名范围进行了比较。所以它做了所有的事情,但不计算唯一用户,这是最后一步。我也不希望简单地删除重复项,因为我希望最终保存所有信息,而不丢失任何数据

看看我所附的照片,我希望“琼斯”在我第9周的主播1计数中只出现一次

在此方面的任何帮助都将不胜感激。如果你能帮我写一个VBA脚本,那就更神奇了!!谢谢大家!

你可以用这个:

Option Explicit

Sub ListUnique()
    Dim c As Range
    Dim key As Variant

    With CreateObject("Scripting.Dictionary")
        For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
            key = c.Value & "|" & c.Offset(, 2).Value & "|" & c.Offset(, 3).Value
            .Item(key) = c.Row
        Next c

        Range("A2", Cells(Rows.Count, 1).End(xlUp)).EntireRow.Hidden = True
        For Each key In .keys
            Rows(.Item(key)).Hidden = False
        Next
    End With
End Sub
你可以用这个:

Option Explicit

Sub ListUnique()
    Dim c As Range
    Dim key As Variant

    With CreateObject("Scripting.Dictionary")
        For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
            key = c.Value & "|" & c.Offset(, 2).Value & "|" & c.Offset(, 3).Value
            .Item(key) = c.Row
        Next c

        Range("A2", Cells(Rows.Count, 1).End(xlUp)).EntireRow.Hidden = True
        For Each key In .keys
            Rows(.Item(key)).Hidden = False
        Next
    End With
End Sub

这很好地隐藏了所有的副本,但在输入我的公式后,它不会改变值。如果我选择$A:$A,是否可以告诉excel仅基于非隐藏行进行计算?非常感谢你的帮助!我不明白你的意思。您写了“我需要做的是能够统计每个主机每周的唯一用户”,这正是我的代码所做的。你是在提交一个新的请求吗?这很好地隐藏了所有的副本,但是在输入我的公式后它不会改变值。如果我选择$A:$A,是否可以告诉excel仅基于非隐藏行进行计算?非常感谢你的帮助!我不明白你的意思。您写了“我需要做的是能够统计每个主机每周的唯一用户”,这正是我的代码所做的。你在提出新的要求吗?