返回列表 上一主題 發帖

[發問] 多條件的VLOOPUP

回復 1# missbb

表1的資料中,時段用區段方式記錄,不合乎資料庫準則
要做分月查詢是不能正確得到
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2013-11-26 23:43 編輯

回復 1# missbb
你是要整理資料成為資料庫型態吧
  1. Sub ex()
  2. Dim OT$, Ary(), r&, y$, a$, i%, s&
  3. Set dic = CreateObject("Scripting.Dictionary")
  4. Set dic1 = CreateObject("Scripting.Dictionary")
  5. r = 2
  6. With Sheets(1)
  7. Do Until .Cells(r, 2) = ""
  8. OT = IIf(.Cells(r, 1) <> "", .Cells(r, 1), OT)
  9. y = Split(.Cells(r, 2), "年")(0)
  10. a = Split(.Cells(r, 2), "年")(1)
  11.    If InStr(a, "-") > 0 Then
  12.    ar = Split(a, "-")
  13.    For i = Val(ar(0)) To Val(ar(1))
  14.       dic(y & "年" & i & "月" & OT) = .Cells(r, 3)
  15.       dic1(y & "年" & i & "月") = ""
  16.    Next
  17.    Else
  18.    dic(y & "年" & a & OT) = .Cells(r, 3)
  19.    n = .Cells(r, 2)
  20.    dic1(.Cells(r, 2) & "") = ""
  21.    End If
  22.    r = r + 1
  23. Loop
  24. ay = Array("時段", "薪金", "加班")
  25. ReDim Preserve Ary(s)
  26. Ary(s) = ay
  27. s = s + 1
  28. For Each ky In dic1.keys
  29. ReDim Preserve Ary(s)
  30. Ary(s) = Array(ky, dic(ky & ay(1)), dic(ky & ay(2)))
  31. s = s + 1
  32. Next
  33. With Sheets(2)
  34. .Columns("A:C") = ""
  35. .[A1].Resize(s, 3) = Application.Transpose(Application.Transpose(Ary))
  36. End With
  37. End With
  38. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題