|
用VBA处理,也不是很难实现——
- Option Explicit
- Sub FilterData()
- Dim k As Range, arr(9999, 5), i%, j%, arrT
- With Sheets("最初模板")
- For Each k In .Range("A4:A" & .[A65536].End(xlUp).Row + 1)
- If Len(k.Value) > 0 Then
- For j = 0 To 30
- If Len(k.Offset(1, j)) > 0 Then
- arr(i, 0) = k.Offset(0, 2) '工号
- arr(i, 1) = k.Offset(0, 10) '姓名
- arr(i, 2) = k.Offset(0, 20) '部门
- arr(i, 3) = Left(.[C3], 8) & Format(j + 1, "00") '日期
- arrT = Split(k.Offset(1, j), Chr(10))
- arr(i, 4) = arrT(0) '上班时间
- arr(i, 5) = arrT(UBound(arrT) - 1) '下班时间
- i = i + 1
- End If
- Next j
- End If
- Next
- End With
- With ActiveSheet
- .Cells.ClearContents
- .[A1:J1] = Array("工号", "姓名", "部门", "日期", "上班时间", "下班时间", "迟到次数", "早退次数", "旷工天数", "加班时长")
- .[A2].Resize(UBound(arr), 6) = arr
- End With
- End Sub
复制代码
|
|