2017-05-26 2 views
2

Ich habe 2 Datenblätter in MS Excel (2016) und müssen Daten von 2 Blatt in einem zu analysieren. Hier ist die schematische Frage meines Bedürfnisses:MS Excel machen Untertabelle/Smart Gruppierung

() - sheet1 - Haupt

--------------------------- 
| id | product | manuf | q | 
--------------------------- 
| 001| prt_1 | man_1 |150| 
--------------------------- 
| 002| prt_2 | man_2 |800| 

() - sheet2 - submain

-------------------- 
|id | date | prices| 
-------------------- 
|001|17.01 | 120 | 
-------------------- 
|001|16.02 | 99 | 
-------------------- 
|002|17.03 | 110 | 
-------------------- 
|002|15.02 | 10 | 

() - was ich tun möchte Gruppe ihnen irgendwie wie diese

--------------------------- 
| id | product | manuf | q | 
--------------------------- 
- | 001| prt_1 | man_1 |150| 
    ---------------------------- 
    |001|17.01 | 120 | 
    -------------------- 
    |001|16.02 | 99 | 

--------------------------- 
+ | 002| prt_2 | man_2 |800| 

mit anderen Worten ist es analog von MS Access und Unterdatenblatt ich weiß, wie es in Acces zu tun aber brauchen in excel. Ich versuchte Pivot-Tisch und Power Pivot, aber immer noch kein Glück.

Zweite Variante die gleiche Aufgabe, aber eine andere Version der Quelldaten. Anstatt 2 Blätter alle Daten in einem, aber Zeilen verdoppelt und verdreifacht. Ich weiß nicht, welche Variante für die gewünschte Gruppierung geeigneter ist.

-------------------------------------------- 
| id | product | manuf | q | date | prices| 
-------------------------------------------- 
|001 | prt_1 | man_1 |150| 17.01 | 120 | 
-------------------------------------------- 
|001 | prt_1 | man_1 |150| 16.02 | 99 | 

Gibt es einen VBA-Code, um dies durchzuführen? Hilfe und Beratung.

Antwort

2

so etwas wie diese

Public Sub Program() 
    Dim i As Long 
    Dim j As Long 
    Dim k As Long 
    i = 2 
    j = 2 
    k = 2 

    Do While Worksheets("Sheet1").Cells(i, "A").Value <> "" 
     'data from sheet1 
     Worksheets("Result").Cells(k, "A").Value = Worksheets("Sheet1").Cells(i, "A").Value 
     Worksheets("Result").Cells(k, "B").Value = Worksheets("Sheet1").Cells(i, "B").Value 
     Worksheets("Result").Cells(k, "C").Value = Worksheets("Sheet1").Cells(i, "C").Value 
     Worksheets("Result").Cells(k, "D").Value = Worksheets("Sheet1").Cells(i, "D").Value 

     k = k + 1 

     Do While Worksheets("Sheet1").Cells(i, "A").Value = Worksheets("Sheet2").Cells(j, "A").Value 
      'data from sheet1 
      Worksheets("Result").Cells(k, "A").Value = Worksheets("Sheet2").Cells(j, "A").Value 
      Worksheets("Result").Cells(k, "B").Value = Worksheets("Sheet2").Cells(j, "B").Value 
      Worksheets("Result").Cells(k, "C").Value = Worksheets("Sheet2").Cells(j, "C").Value 
      Worksheets("Result").Cells(k, "D").Value = Worksheets("Sheet2").Cells(j, "D").Value 

      k = k + 1 
      j = j + 1 
     Loop 

     k = k + 1 
     i = i + 1 
    Loop 
End Sub 
+0

Arbeit gut) Danke –

+0

Froh, dass ich helfen konnte! ;) – Zsmaster