创build一个dynamic的交互式范围的单元格,以提供所需的小时数输出

我有一个原始的数据表,由列作为时间段和行标签作为技术人员的名字。 填写的数据是汽车的注册号码。

我必须计算两件事情:

  1. 每个人在一天中工作的小时数
  2. 所涉及的个别技术人员花在一辆车上的时间。

我能够通过使用数据透视表来实现第一项任务,但却被困在第二项任务中。 请build议一些简单的方法。 谢谢

附上的是参考图像的虚拟数据。

跟踪的服务车辆表

你可以使用这个代码,从现有的表中创build一个新的数据表,并以一种可以让Pivot表变得可行的格式给你提供数据,

 Sub K() Dim LR As Long, i As Long, j As Long, LR1 As Long Dim reg As String, person As String Dim DT As Date Range("AB:AD").Delete Shift:=xlToLeft Sheets("Sheet1").Select LR = Range("A" & Rows.Count).End(xlUp).Row For j = 5 To LR For i = 4 To 25 If Cells(j, i).Value = "" Then Else reg = Cells(j, i).Value LR1 = Range("AC" & Rows.Count).End(xlUp).Row DT = Cells(j, 1).Value person = Cells(j, 2).Value Range("AC" & LR1).Offset(1, 0).Value = reg Range("AC" & LR1).Offset(1, 1).Value = person Range("AC" & LR1).Offset(1, -1).Value = DT End If Next Next Range("AB1").FormulaR1C1 = "Date" Range("AC1").FormulaR1C1 = "Reg. No." Range("AD1").FormulaR1C1 = "Person" Range("AE1").FormulaR1C1 = "Count" LR1 = Range("AC" & Rows.Count).End(xlUp).Row Range("AE2:AE" & LR1).Value = 0.5 End Sub 

这张表可以作为PIVOT的来源,每次运行代码时,都会根据给定的数据给出一个完整的数据集。

我不认为你可以使用数据透视表作为你希望出现在你的新表中的数据,即汽车的注册号码,数据透视不会让你把这些注册号码作为行/列条目。

你应该接受VBA的帮助。 你可以使用循环读取这些数据,并为每一辆车创build一个计数,你应该使用if else循环。 设置条件应该在哪个条目上进行计算,哪些条件不应该进行。