Excel VBA计数包含特定值的行
我正在学习VBA,我发现有一个练习很难解决。 以下是主表的一个示例:Excel VBA计数包含特定值的行,excel,vba,Excel,Vba,我正在学习VBA,我发现有一个练习很难解决。 以下是主表的一个示例: A B C D person team date task -------------------------------- toms A 10/08 t1 toms A 10/08 t2 toms A 10/08 t3 harry B 10/08 t4
A B C D
person team date task
--------------------------------
toms A 10/08 t1
toms A 10/08 t2
toms A 10/08 t3
harry B 10/08 t4
harry B 10/08 t5
harry B 11/08 t6
toms A 11/08 t7
toms A 11/08 t8
jhon B 11/08 t9
目标是统计每人每天的任务数。
结果应该如下所示:
A B C D
person team date total
--------------------------------
toms A 10/08 3
toms A 11/08 2
harry B 10/08 2
harry B 11/08 1
jhon B 11/08 1
我曾想过使用
字典
,但似乎你只能使用字典中的一个键。有没有一个特定的VBA函数可以帮助我解决这个问题?正如@Scott Craner所说,您可以像这样设置数据透视表:
A B C D
person team date total
--------------------------------
toms A 10/08 3
toms A 11/08 2
harry B 10/08 2
harry B 11/08 1
jhon B 11/08 1
对于这个问题,我会使用透视表(或Power Query)解决方案,但对于使用字典的方法(因为您正在学习技术),我建议如下
- 创建一个以键为主要分隔符的字典。在您的情况下,它似乎将
name | team
- 此字典将存储另一个字典,其键=日期,项=计数
- 使用VBA阵列进行更快的处理(对大型数据集很有用)
- 限定各种工作表和范围参考
将日期和名称连接在一起,以创建唯一的字典键。数据透视表可以做到这一点。