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

[µo°Ý] ¨â¤u§@ªí¤ñ¹ï ·s¼W­×§ï

¦^´_ 5# Hsieh

½Ð°Ý¤@¤UªO¤j

­ì¥ý§Ú¬O¥HDÄ欰¥D

²{¦æ§ï¬°
¨Ì¤T­ÓÄæ¦ì¨Ó¤ñ¹ï

Åܦ¨¬O¬ÝA,B,D¤T­ÓÄæ¦ì
ABD¤@°_¬Ý¨Ó§P§O¬O¤@µ§

¤]´N¬O»¡¥ú³æ¬ÝA©ÎB©ÎD·|¦³­«½Æ

¥²¶·A,B,D¤@°_¬Ý¤~¯à°÷§P©w

³o¼Ë§Ú¥²¶·«ç»ò­×¥¿???

½Ð±Ð¤@¤U¤j¤j

ÁÂÁÂ :  )
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 9# Hsieh

¦­¦w «¢«¢

§A¦n¦­³á

ÁÂÁªO¤jªº»¡©ú
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 8# li_hsien


    ¤@ºû°}¦C¬O«ü³æ¦C¸ê®Æªº¶°¦X¡A¬O¾î¦Vªº¡C
¨ä°}¦C¯Á¤Þ¼Ë¦¡¬°arr(0)
¤Gºû°}¦C«h¬°¦h¦C¡A©Ò¦³¸ê®Æ¤À§G¦¨­±¡C
¨ä°}¦C¯Á¤Þ¼Ë¦¡¬°arr(0¡A0)
¦]¬°Àx¦s®æ½d³ò¡AEXCEL·|µø¬°¤Gºû°}¦C
©Ò¥H¦pªGÀx¦s®æ½d³ò¬°³æ¦C¡A¦p[A1:F1]
¦pªG¤@¦¸Âà¸m¡A·|Åܦ¨ª½¦V°}¦C¡A¬O¤Gºû°}¦C
¦A¤@¦¸Âà¸m«á¡AÅܦ¨¾î¦V¡A´N¬O¤@ºû°}¦C¡C
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 7# Hsieh

ª©¥D·N«ä¬OÀx¦s®æ¹ê»Ú¤W¬O¤Gºû
¦ý¦r¨åªº§Î¦¡¬O¤@ºû

©Ò¥H­n¥ýÂন¤@ºû©ñ¶i¦r¨å
¤§«á¦bÂà¤@¦¸Åܦ¨¤Gºû©ñ¶iÀx¦s®æ¤¤¶Ü???

¥H¤U¬O¦bÀx¦s®æ§e²{ªº¤è¦¡
A   B   C   D   E     ->Àx¦s®æ¤W³o¼Ë¬O¤Gºû??

A->³o¼Ë¬O¤@ºû¶Ü??
B
C
D
E
ÁÙ¬O«ç»ò§e²{³£µLÃö¡A¥u­n¬OÀx¦s®æ¤W¬Ò¬O¤Gºû???


ÁÂÁªO¤jªº¤£§[«ü±Ð
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 6# li_hsien

³o¬O§Q¥Î¦r¨åª«¥óªº¤£­«½Æ¯Á¤Þ¯S©Ê¡A±N©Ò¦³ªº¸ê®Æ¼g¤J¦r¨å¤º®e
¦]¬°Àx¦s®æ½d³ò³Qµø¬°¤Gºû°}¦C¡A¦ý¦]¬°³æ¦Cªº¸ê®Æ¥Îtranspose¨ç¼Æ°µ¤G¦¸Âà¸m¡A´N·|Åܦ¨¤@ºû°}¦C
±N³o¨Ç¤@ºû°}¦C¦s¤J¦r¨å¤º®e¡A¦r¨å¤º®e´N¬O¦h­Ó¤@ºû°}¦C©Ò²Õ¦¨¡A¦A¸g¹L¤G¦¸Âà¸m´N¥i¦¨¬°¯u¥¿ªº¤Gºû°}¦C
¦]¬°§Aªºmatch¤u§@ªí»Ý«O¯d­ì¤º®e¡A¦b³Ì«á¤~Ū¤J´N¤£·|³QA¡AB©ÒÂл\
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 5# Hsieh

½Ð°Ý¤j¤j

§Ú¤£¤ÓÀ´
Application.Transpose(Application.Transpose(A.Offset(, -3).Resize(, 6).Value))
ªº¥Î·N

¬°¤°»ò­n³s¥Î¨â¦¸Application.Transpose

¥B§Ú¬Ý¤£¥X­þ¤@¬q¬O¤ñ¹ï¨âªÌ¤£¦P
¶i¦æ·s¼W©Î§R°£ªº³¡¤À
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

  1. Sub ex()
  2. Dim A As Range, Sh As Worksheet
  3. Set d = CreateObject("Scripting.Dictionary")
  4. For Each Sh In Sheets(Array("User A", "User B", "Match A & B"))
  5. With Sh
  6.    For Each A In .Range(.[D1], .[D1].End(xlDown))
  7.       d(A.Value) = Application.Transpose(Application.Transpose(A.Offset(, -3).Resize(, 6).Value))
  8.    Next
  9. End With
  10. Next
  11. Sheets("Match A & B").[A1].Resize(d.Count, 6) = Application.Transpose(Application.Transpose(d.items))
  12. End Sub
½Æ»s¥N½X
¦^´_ 4# li_hsien
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 3# Hsieh

¬O¥HID¬°¥D­n¤ñ¹ïªº¶µ¥Ø¨S¿ù

§âUSER A , USER B ·J¾ã¦¨MATCH  A & B
°ò¥»¤WUSER A »P USER B¸Ì­±¸ê®Æ­YID¤@¼Ë
¨ä¥LÄæ¦ì¤]³£·|¤@¼Ë
©Ò¥H¨ú¥ý¨ú«á³£¥i¥H

¥Ø«e§Ú¸I¤W¥D­nªº°ÝÃD¬OE,FÄæ¦ì
¬O¦bMATCH«á¤~·|¶ñ¼gªº

©Ò¥H¦bUSER A ©ÎUSER B¥[Äæ¦ì«á¦AMATCH
­ì¥ý¶ñ¦bE,FªºÄæ¦ì´N¤£¯à¹ï»ô¤F

¥B¦pªG¦AUSER A©ÎUSER B¦³§R°£«hMATCH¸Ì­±ªº¤]·|³Q§R°£(E,F¤]·|)

EX:

­ì¥»ªºMATCH

A            B            C                   D               E                        F
123       456       2013.01     AAA         TEST123         TEST456

¦bUSER¤¤¥[¤J¤@Äæ¦b­ì¥ýID AAAªº¤W­±
A            B            C                   D      
777       888       2013.02     BBB     
123       456       2013.01     AAA


«hMATCH«á·|Åܦ¨
A            B            C                   D               E                        F
777       888       2013.02     BBB          TEST123         TEST456
123       456       2013.01     AAA

¥¿½TÀ³¸Ó¬°
A            B            C                   D               E                        F
777       888       2013.02     BBB         
123       456       2013.01     AAA         TEST123         TEST456


¥Ø«e§ÚªþÀɪºµ{¦¡½X¦n¹³¥i¥H°µ¨ì

¦ý¤£ª¾O¤£OK

ÁÙ¬O¥t¦³§ó¦nªº§@ªk


ÁÂÁ¤j¤j :  )
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

¦^´_ 2# li_hsien

¬O¤ñ¹ï­«½ÆID¶Ü?½Ð»¡©ú­«½Æªº©w¸q
­n°O¿ýªº¬O¨C­ÓIDªº³Ì«á¥X²{ªº¸ê®Æ¡AÁÙ¬O³Ì¥ý¥X²{ªº¸ê®Æ?
¸Õ¸Õ¬ö¿ý³Ì«á¥X²{ªºID¸ê®Æ
  1. Sub ex()
  2. Dim Sh As Worksheet, A As Range
  3. Set dic = CreateObject("Scripting.Dictionary")
  4. For Each Sh In Sheets(Array("User A", "User B"))
  5. With Sh
  6.   For Each A In .Range(.[D1], .[D1].End(xlDown))
  7.   ar = Application.Transpose(Application.Transpose(A.Offset(, -3).Resize(, 4)))
  8.   mystr = Join(ar, Chr(10))
  9.      dic(A.Value) = Split(mystr, Chr(10))
  10.   Next
  11. End With
  12. Next
  13. Sheets("Match A & B").[A1].Resize(dic.Count, 4) = Application.Transpose(Application.Transpose(dic.items))
  14. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

ÁÂÁ¤j¤j

·íªì¦n¹³§â¬yµ{·Q±o¤Ó½ÆÂø «¢

«á¨Ó¦³¾ã²z¥X­Ó¤èªk

¥Ø«eÀ³¸Ó¥i¦æ

¤£ª¾¦³µL¨ä¥L¤è¦¡

ªþÀɬOª½±µ§âuserA,userB§ì¶i¨Ó¤F
(§â¥~³¡¸ê®Æ¨Ó·½¬Ù²¤)

Ä橳³¡¤ÀªºÄæ¦ì¬OMATCH«á¤~¶ñ¼gªº

userA,userB¤£¯à¶ñ
  1. Sub match_Click()
  2.    
  3.     'Copy userA
  4.     For i = 2 To Sheets(2).Range("A1").End(xlDown).Row
  5.         '§P§O¨Ó·½¦³µL­«½Æ,¥BMATCHªí¨S¦³ªº(¶K³Ì¤U­±)
  6.         If Application.match(Sheets(2).Range("D" & i), Sheets(2).Range("D:D"), 0) = i And _
  7.                 IsError(Application.match(Sheets(2).Range("D" & i), Range("D:D"), 0)) = True Then
  8.             userA_rows = Range("A65536").End(xlUp).Row + 1
  9.             Sheets(2).Range("A" & i & ":D" & i).Copy Range("A" & userA_rows & ":D" & userA_rows)
  10.         '§P§O¨Ó·½¦³µL­«½Æ,¥BMATCHªí¤W¦³ªº(¶K¦bMATCH¦ì¸m)
  11.         ElseIf Application.match(Sheets(2).Range("D" & i), Sheets(2).Range("D:D"), 0) = i And _
  12.                 IsError(Application.match(Sheets(2).Range("D" & i), Range("D:D"), 0)) = False Then
  13.             site_A = Application.match(Sheets(2).Range("D" & i), Range("D:D"), 0)
  14.             Sheets(2).Range("A" & i & ":D" & i).Copy Range("A" & site_A & ":D" & site_A)
  15.         End If
  16.     Next

  17.     'Copy userB
  18.     For j = 2 To Sheets(3).Range("A1").End(xlDown).Row
  19.         '§P§O¨Ó·½¦³µL­«½Æ,¥BMATCHªí¨S¦³ªº(¶K³Ì¤U­±)
  20.         If Application.match(Sheets(3).Range("D" & j), Sheets(3).Range("D:D"), 0) = j And _
  21.                 IsError(Application.match(Sheets(3).Range("D" & j), Range("D:D"), 0)) = True Then
  22.             userB_rows = Range("A65536").End(xlUp).Row + 1
  23.             Sheets(3).Range("A" & j & ":D" & j).Copy Range("A" & userB_rows & ":D" & userB_rows)
  24.         '§P§O¨Ó·½¦³µL­«½Æ,¥BMATCHªí¦³ªº(¶K¦bMATCH¦ì¸m)
  25.         ElseIf Application.match(Sheets(3).Range("D" & j), Sheets(3).Range("D:D"), 0) = j And _
  26.                 IsError(Application.match(Sheets(3).Range("D" & j), Range("D:D"), 0)) = False Then
  27.             site_B = Application.match(Sheets(3).Range("D" & j), Range("D:D"), 0)
  28.             Sheets(3).Range("A" & j & ":D" & j).Copy Range("A" & site_B & ":D" & site_B)
  29.         End If
  30.     Next

  31.     '»PuserA,userB¤ñ¹ï §R°£¨S¦³ªº
  32.     For x = 2 To Range("A1").End(xlDown).Row
  33.         If IsError(Application.match(Range("D" & x), Sheets(2).Range("D:D"), 0)) = True And _
  34.             IsError(Application.match(Range("D" & x), Sheets(3).Range("D:D"), 0)) = True Then
  35.             Rows(x).Delete
  36.         End If
  37.     Next
  38. End Sub
½Æ»s¥N½X
match.zip (20.51 KB)
¥Î¥\¨ì¥@¬É¥½¤é¨º¤@¤Ñ¡ã¡ã¡ã

TOP

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