在设定的date范围内计算唯一值

我需要根据date范围(可能是一天或几天)来计算一列中有多less个唯一值(名称)。

我的数据存储如下。

A列=日/月/年
列B =名称

不幸的是,数据被导入到我的文件中的方式并没有给我任何其他select,只是使用名称作为唯一的员工身份识别的参考,没有列出ID。

这个想法是有2个单元格,“From”和“To”inputdate以执行唯一值计算并将结果返回给另一个单元格。

我做了一个或多或less的样本,我正在寻找。 你会发现一个标签,我想inputdate和一个样本数据库选项卡。

http://public.justcloud.com/e04wqfgc89.83937591

这些独特的值将允许我执行报告所需的额外计算。

Results!S2的公式应该如下所示:

=SUMPRODUCT(((DB!$A$2:$A$262>=A2)*(DB!$A$2:$A$262<=B2))/(COUNTIFS(DB!$A$2:$A$262,">="&A2,DB!$A$2:$A$262,"<="&B2,DB!$B$2:$B$262,DB!$B$2:$B$262&"")+(DB!$A$2:$A$262<A2)+(DB!$A$2:$A$262>B2))) 

我已经看到工作表devise者使用MIN(A2:B2)MAX(A2:B2)来防止用户把StartStop的date顺序错误,但是我通常会让用户自行分手,无法区分Date从date到

你可以在C2中使用这个“数组公式”

=SUM(IF(FREQUENCY(IF((DB!A$2:A$300>A2)*(DB!A$2:A$300<B2),MATCH(DB!B$2:B$300,DB!B$2:B$300,0)),ROW(DB!B$2:B$300)-ROW(DB!B$2)+1),1))

CTRL + SHIFT + ENTER确认

尝试这个

 Sub test() Dim oCell As Range, i&, LRow&: i = 1 Dim Group As Object: Set Group = CreateObject("Scripting.Dictionary") Dim DtFrom As Date, DtTo As Date With Sheets("Results") DtFrom = .Cells(2, 1).Value DtTo = .Cells(2, 2).Value End With LRow = Sheets("DB").Cells(Rows.Count, "B").End(xlUp).Row For Each oCell In Sheets("DB").Range("A2:A" & LRow) If Not Group.exists(oCell.Offset(, 1).Value) And oCell.Value <> "" And _ CDate(oCell.Value) >= DtFrom And CDate(oCell.Value) <= DtTo Then Group.Add oCell.Offset(, 1).Value, i: i = i + 1 End If Next Sheets("Results").Cells(2, 3).Value = Group.Count End Sub