2017-05-26 31 views
2

我在MS Excel(2016)中有2個數據表,需要分析兩張表中的數據。這裏是我需要的原理問題:MS excel製作子表/智能分組

() - 工作表Sheet1 - 主要

--------------------------- 
| 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 | 

() - 我想要做什麼是他們組不知何故這樣

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

--------------------------- 
+ | 002| prt_2 | man_2 |800| 
換句話說

它的MS Access數據表的模擬,我知道如何做到這一點的艾策斯但需要在Excel中。 我嘗試了數據透視表和功率支點,但仍然沒有運氣。

第二個變體是同一個任務,但是是另一個版本的源數據。而不是2張所有數據在一個,但行增加一倍和三倍。不知道這個變體是否更容易進行所需的分組。

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

是否有一些VBA代碼來執行此操作? nees的幫助和建議。

回答

2

像這樣

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

工作的高度)謝謝 –

+0

很高興我能幫助! ;) – Zsmaster