我有一个工作项目,我正在尝试计算员工工作的总天数,其中一张表中的数据提供在同一张表上计算的数字,或者同一工作簿中的另一张表。
每个工作日都有几行数据,因此我希望分别计算每个员工的唯一日期总数。如果数据被隔离到一名员工,那么我可以使用:
=SUM(IF(FREQUENCY(B:B,B:B)>0,1))
计算工作日数。我尝试使用几个额外的公式来获得我正在寻找的值,包括:
=SUMPRODUCT((TEXT('Data'!$A$1:$A$100, "yyyymm")="201804")*('Data'!B$1:$B$100="John Doe"))
和
=SUMIFS(IF(FREQUENCY('Sono Detail'!$B:$B,'Sono Detail'!$B:$B)>0,1),'Sono Detail'!$E:$E,'(Test) Sono Report Card 1.0'!$B$3)
这些都不起作用。
最佳答案
这还不是代码解决方案,但我发布此答案是为了说明您可以根据您提供的示例从数据透视表中获得的数据。
在第一个字段排列中,您可以看到数据透视表显示了每个员工每天执行了多少程序。这包括该时间段内每位员工的程序总数。因此,“员工 1”在 3 月 1 日执行了 14 个程序,以此类推。
如果我更改数据透视表的值字段,我可以显示每个员工执行程序所花费的总时间(以 DAYS 为单位)。因此,在下表中,员工 1 在 3 月 1 日工作了 0.15833 天。这转换为 288 分钟(或 3.8 小时)。
遍历数据透视表的 VBA 代码将识别每个员工以及他们工作了多少天,并且还可以访问其他总结性数据。
关于vba - 返回同一工作簿中另一张工作表上的唯一日期数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50049107/