התאמת שורות באקסל

התאמת שורות באקסל

בקובץ המצורף, נתונה טבלה בטווח עמודות A:D
אני רוצה לסדר את השורות בעמודה A מול אותן השורות שבעמודה C (ע"פ סדר רץ), כאשר עמודה B עוקבת אחר A ועמודה D עוקבת אחר C .
התוצאה הרצויה מתוארת בעמודות G:J
הערות :
שתי השורות העליונות צריכות להישאר ללא שינוי.
הטבלה המקורית, ארוכה יותר והינה בעלת מס' שורות בלתי מסוים.
7/2010
 

ziv98

Member
מאקרו

מצ"ב מאקרו שמכין רשימת ערכים ייחודיים מעמודות A+C, ומוסיף לידה (בלוקאפ פשוט) את הערכים המתאים שהטבלה המקורית.
1. אתה יכול בסוף התהליך להוסיף "הדבק כערכים", ולמחוק את עמודה L
2. לא טיפלתי באורך משתנה של הרשימה, קל מאוד לטפל, ואני משאיר לך קצת עבודה...

קוד:
Sub mergeLists()

'uniqe list
Dim rng As Range
Set rng = Range("L3")
Set dic = CreateObject("Scripting.Dictionary")
For j = 1 To 3 Step 2
    For i = 3 To 16
        tmp = Cells(i, j).Value
        If tmp <> "" And Not dic.Exists(tmp) Then
            rng.Value = tmp
            dic(tmp) = ""
            Set rng = rng.Offset(1, 0)
        End If
    Next
Next


'sort
    With ActiveWorkbook.Worksheets("âéìéåï1").Sort
        .SetRange Range("L3:L19")
        .Apply
    End With
    
'lookups
    
    Range("M3").FormulaR1C1 = "=IFERROR(VLOOKUP(RC12,C1:C2,1,0),"""")"
    Range("N3").FormulaR1C1 = "=IFERROR(VLOOKUP(RC12,C1:C2,2,0),"""")"
    Range("O3").FormulaR1C1 = "=IFERROR(VLOOKUP(RC12,C3:C4,1,0),"""")"
    Range("P3").FormulaR1C1 = "=IFERROR(VLOOKUP(RC12,C3:C4,2,0),"""")"
    Range("M3:P3").Select
    Selection.AutoFill Destination:=Range("M3:P19")

End Sub
 
תודה ענקית
פשוט תותח, אומנם...

הייתה לי בעיה עם המיון של עמודה L. זה לא עבד, ה Apply לא עשה כלום.
כתבתי פקודת מיון אחרת.
תודה רבה רבה.
 
למעלה