ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¦h±ø¥óªºVLOOPUP

[µo°Ý] ¦h±ø¥óªºVLOOPUP

¦U¤j¤j:

½Ð°Ý¦p¦ó±Nªí1ªº¸ê®Æ, ¥H¨ç¼Æ©ñ¸m¦bªí2, ¦]¬°­n¥H¨â­Ó±ø¥ó¨Ï¥ÎVLOOKUP (²Ä¤@²Õ±ø¥ó®É¬q¤ÎÁ~ª÷, ²Ä¤G²Õ¬O±ø¥ó®É¬q¤Î¥[¯Z)                       
©êºp¦]Åv­­¤£¨¬¥¼¯à¤W¶ÇÀÉ®×:(
               
ªí1       
A                      B                                     C
                        ®É¬q                                ª÷ÃB       
Á~ª÷                 2013¦~1¤ë-2¤ë        10000       
                         2013¦~3¤ë-5¤ë        20000       
                         2013¦~5¤ë                        25000       
¥[¯Z                 2013¦~1¤ë-5¤ë        1000       
                       
                       
ªí2                       
A                      B             C
®É¬q                 Á~ª÷         ¥[¯Z       
2013¦~1¤ë        10000        1000       
2013¦~2¤ë        10000        1000       
2013¦~3¤ë        20000        1000       
2013¦~4¤ë        20000        1000       
2013¦~5¤ë        25000        1000

EXCEL¤dÅܸU¤Æ¦A¥[¤WVBA¦³±o¾ÇÅo

TOP

¦^´_ 13# ML089


EXCEL¯u«YÅܤƦhºÝ, ·|¸Õ¸Õ¬Ý!¦hÁ¦U¦ì¤j¤j!:D

TOP

¦^´_ 1# missbb
¦^´_ 11# sunnyso

«D³W«h¸ê®Æ·|Åý¤½¦¡½ÆÂø¤Æ¡A
¦³®É«D³W«h¸ê®Æ¬OÅý¸ê®Æ¬üÆ[¡A¥i¼W¥[»²§UÄæ¾ã²z¦¨¼Ð·Ç¸ê®Æ¶ô¡A¤]¥i¥Î²³æ¤½¦¡§¹¦¨¡C



F2
=SUMPRODUCT((F$1=LOOKUP(ROW($2:$7),ROW($2:$7)/($A$2:$A$7<>""),$A$2:$A$7))*
(--($E2&"1¤é")>=--(LEFT($B$2:$B$7,FIND("-",$B$2:$B$7&-1)-1)&"1¤é"))*
(--($E2&"1¤é")<=--(LEFT($B$2:$B$7,5)&SUBSTITUTE(SUBSTITUTE(RIGHT($B$2:$B$7,3),"-",),"¦~",)&"1¤é")),$C$2:$C$7)

¥k©Ô¤U©Ô½Æ»s¤½¦¡(¶À¦â°Ï)
{...} ªí¥Ü»Ý­n¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡

TOP

¦^´_ 11# sunnyso

Sonny.gif
ss

TOP

¤£¥ÎVBA¤]¥i¥H, H~OÄæ爲»²§UÄæ, µª®×¦bQ~SÄæ


ªþ¥ó»Ý­n¥ÎWinRAR V5.0¤~¯à¶}啓
Sonny.rar (13.45 KB)














¦^´_ 4# ML089
¦^´_ 5# missbb
¦^´_ 6# nissin
¦^´_ 10# Hsieh
ss

TOP

¥»©«³Ì«á¥Ñ Hsieh ©ó 2013-11-26 23:43 ½s¿è

¦^´_ 1# missbb
§A¬O­n¾ã²z¸ê®Æ¦¨¬°¸ê®Æ®w«¬ºA§a
  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("®É¬q", "Á~ª÷", "¥[¯Z")
  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
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 8# nissin
¦hÁ±z§r !:D

TOP

¸Õ¸Õ³o­Ó
  1. Sub copydata()
  2. Dim s1 As Long, s2 As Long, s3 As Long, d1 As Long, d2 As Long
  3. Dim wages As Long, OT As Long

  4. i = 1
  5. While Sheets(1).Cells(i, 1) <> "Á~ª÷"
  6.     i = i + 1
  7. Wend
  8. wages = i

  9. While Sheets(1).Cells(i, 1) <> "¥[¯Z"
  10.     i = i + 1
  11. Wend
  12. OT = i

  13. For i = wages To Sheets(1).UsedRange.Rows.Count
  14.     s1 = Left(Sheets(1).Cells(i, 2), 4)
  15.     s2 = Mid(Sheets(1).Cells(i, 2), 6, InStr(1, Sheets(1).Cells(i, 2), "¤ë") - 5 - 1)
  16.     If InStr(1, Sheets(1).Cells(i, 2), "-") <> 0 Then
  17.         s3 = Mid(Sheets(1).Cells(i, 2), InStr(1, Sheets(1).Cells(i, 2), "-") + 1, Len(Sheets(1).Cells(i, 2)) - (InStr(1, Sheets(1).Cells(i, 2), "-") + 1))
  18.     Else
  19.         s3 = 0
  20.     End If
  21.     For j = 2 To Sheets(2).UsedRange.Rows.Count
  22.         d1 = Left(Sheets(2).Cells(j, 1), 4)
  23.         d2 = Mid(Sheets(2).Cells(j, 1), 6, InStr(1, Sheets(2).Cells(j, 1), "¤ë") - 1 - 5)
  24.         
  25.         If d1 * 100 + d2 >= s1 * 100 + s2 Then
  26.             If s3 <> 0 Then
  27.                 If d1 * 100 + d2 <= s1 * 100 + s3 Then
  28.                     If i >= OT Then
  29.                         Sheets(2).Cells(j, 3) = Sheets(1).Cells(i, 3)
  30.                     Else
  31.                         Sheets(2).Cells(j, 2) = Sheets(1).Cells(i, 3)
  32.                     End If
  33.                 End If
  34.             Else
  35.                 If i >= OT Then
  36.                     Sheets(2).Cells(j, 3) = Sheets(1).Cells(i, 3)
  37.                 Else
  38.                     Sheets(2).Cells(j, 2) = Sheets(1).Cells(i, 3)
  39.                 End If
  40.             End If
  41.         End If
  42.     Next j
  43. Next i
  44. End Sub
½Æ»s¥N½X

TOP

¦^´_ 6# nissin


   ©ú¥Õ, ¤w¦b¾Ç²ß¤¤!:P

TOP

        ÀR«ä¦Û¦b : ¥Ç¿ù¥XÄb®¬¤ß¡A¤~¯à²M²bµL·Ð´o¡C
ªð¦^¦Cªí ¤W¤@¥DÃD