MS Excel生成子表/智能分组

hgncfbus  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(285)

我在MS Excel(2016)中有2个数据表,需要分析2张表中的数据。下面是我需要的示意图问题:
()- sheet1 - main

  1. ---------------------------
  2. | id | product | manuf | q |
  3. ---------------------------
  4. | 001| prt_1 | man_1 |150|
  5. ---------------------------
  6. | 002| prt_2 | man_2 |800|

字符串
()- sheet2 - submain

  1. --------------------
  2. |id | date | prices|
  3. --------------------
  4. |001|17.01 | 120 |
  5. --------------------
  6. |001|16.02 | 99 |
  7. --------------------
  8. |002|17.03 | 110 |
  9. --------------------
  10. |002|15.02 | 10 |


()-我想做的是把它们像这样分组

  1. ---------------------------
  2. | id | product | manuf | q |
  3. ---------------------------
  4. - | 001| prt_1 | man_1 |150|
  5. ----------------------------
  6. |001|17.01 | 120 |
  7. --------------------
  8. |001|16.02 | 99 |
  9. ---------------------------
  10. + | 002| prt_2 | man_2 |800|


换句话说,它是MS Access SubDataSheet的模拟,我知道如何在Access中完成,但需要在Excel中完成。我尝试了Pivot Table和Power Pivot,但仍然没有运气。
第二个变体相同的任务,但另一个版本的源数据。而不是2张所有数据在一个,但行增加了一倍和三倍。不知道哪个变体更适合做所需的分组。

  1. --------------------------------------------
  2. | id | product | manuf | q | date | prices|
  3. --------------------------------------------
  4. |001 | prt_1 | man_1 |150| 17.01 | 120 |
  5. --------------------------------------------
  6. |001 | prt_1 | man_1 |150| 16.02 | 99 |


有没有一些代码来执行这个?需要帮助和建议。

w1e3prcc

w1e3prcc1#

这样的事情

  1. Public Sub Program()
  2. Dim i As Long
  3. Dim j As Long
  4. Dim k As Long
  5. i = 2
  6. j = 2
  7. k = 2
  8. Do While Worksheets("Sheet1").Cells(i, "A").Value <> ""
  9. 'data from sheet1
  10. Worksheets("Result").Cells(k, "A").Value = Worksheets("Sheet1").Cells(i, "A").Value
  11. Worksheets("Result").Cells(k, "B").Value = Worksheets("Sheet1").Cells(i, "B").Value
  12. Worksheets("Result").Cells(k, "C").Value = Worksheets("Sheet1").Cells(i, "C").Value
  13. Worksheets("Result").Cells(k, "D").Value = Worksheets("Sheet1").Cells(i, "D").Value
  14. k = k + 1
  15. Do While Worksheets("Sheet1").Cells(i, "A").Value = Worksheets("Sheet2").Cells(j, "A").Value
  16. 'data from sheet1
  17. Worksheets("Result").Cells(k, "A").Value = Worksheets("Sheet2").Cells(j, "A").Value
  18. Worksheets("Result").Cells(k, "B").Value = Worksheets("Sheet2").Cells(j, "B").Value
  19. Worksheets("Result").Cells(k, "C").Value = Worksheets("Sheet2").Cells(j, "C").Value
  20. Worksheets("Result").Cells(k, "D").Value = Worksheets("Sheet2").Cells(j, "D").Value
  21. k = k + 1
  22. j = j + 1
  23. Loop
  24. k = k + 1
  25. i = i + 1
  26. Loop
  27. End Sub

字符串

展开查看全部

相关问题