有点像Excel VBA 2007中的反向枢轴

dt64714​​6

我已经搜索并找到了许多类似的问题(在这里和其他地方),但是我无法理解如何适应自己的需求。通常,我会使用VBA找到类似数据透视数据的数据透视,或者我无法弄清楚如何正确地搜索(描述)我所需要的东西,或者我丢失了一些东西。

我获取主题/类别对的数据(最多3万行),并对它们进行计数/分组以得到:

Subject  Category   Count
  A         C1         1
  A         C2         4
  B         C1         8
  B         C2         1
  B         C3         2
  C         C2         4

我需要数据显示为

Subject     C1     C2     C3
  A          1      4      0
  B          8      1      2
  C          0      4      0

有没有一种方法可以使用Excel VBA做到这一点?我尝试直接从原始数据转换为这种格式,但无法弄清楚,因此希望这种方法能更好地工作。

任何帮助将不胜感激-即使是告诉我如何更好地寻求解决方案。

编辑:哦,是的,并且每次运行此数据时类别列表都不相同。必须定期进行,并且每次都会更改。所以我一直在寻找如何按照类别从左到右的顺序增加类别(然后我总是可以在以后对它们进行排序)...

佩格

假设您已按主题对Sheet1进行了排序。我会为您拼凑几块。这是未经测试的,因为它不完整。但是,这些概念将为您提供想要实现的目标。

我将从创建第二张表开始。在遍历Sheet1时,您需要跟踪正在处理的行。

Dim tRow As Long   'tRow to represent the target row, one for each subject on Sheet1
tRow = 1           'Start on row 1, the code below takes into account the header row

在Sheet1上建立lastRow。

lastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row

在Sheet1上获取所有唯一的类别名称。您可以构建类别数组。“ categoryList()”

链接至Chip Pearson页面的此链接提供了许多有关从不同值构建数组的良好信息。

使用这些名称在Sheet2上构建列标题。执行循环

For c = 0 To UBound(categoryList)
    Sheets("Sheet2").Cells(1, c + 2) = categoryList(c)   'c+2 because column 2 is the first Category
Next c

逐行浏览Sheet1。设置一个名为“ lastSubject”的变量,并将该行的列A中的值与lastSubject进行比较。

Dim lastSubject As String
lastSubject = ""
For r = 2 To lastRow
    If Sheets("Sheet1").Cells(r, 1) <> lastSubject Then
        lastSubject = Sheets("Sheet1").Cells(r, 1)  
        tRow = tRow + 1     'Add 1 to target row on Sheet2, because the subject changed.
        Sheets("Sheet2").Cells(tRow, 1) = Sheets("Sheet1").Cells(r, 1)   'Set the Subject on Sheet2
    End If

    For c = 0 to UBound(categoryList)
        If Sheets("Sheet1").Cells(r, 2).Value = categoryList(c) Then
            Sheets("Sheet2").Cells(tRow, c + 2) = Sheets("Sheet1").Cells(r, 3)  'Set the Count
        End If
    next c       
next r

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有点像Excel VBA 2007中的反向枢轴

来自分类Dev

C ++中奇怪的括号括号表示法,每个循环看起来有点像

来自分类Dev

我可以使返回类型随参数的变化而有点像F#中的sprintf吗?

来自分类Dev

Excel VBA有点反向查找-还有更好的选择吗?

来自分类Dev

使用Python列表理解有点像zip

来自分类Dev

使用Python列表理解有点像zip

来自分类Dev

查询有点像EVA模型

来自分类Dev

这个函数有点像单例吗?

来自分类Dev

VBA图片不在Excel 2007中显示

来自分类Dev

从Excel 2010中的VBA刷新电源枢轴的简单方法?

来自分类Dev

有点像地图,但有一个价值?

来自分类Dev

AngularJS:ng单击img?使用jQuery处理图片(有点像画廊)?

来自分类Dev

HTML 文本作为 POST 切换(有点像单选按钮)?

来自分类Dev

Excel图表(VBA)中的点

来自分类Dev

在VBA中创建反向索引的有效方法

来自分类Dev

Excel 2007 VBA暂停宏

来自分类Dev

如何使用布尔列(有点像单选按钮)强制执行“唯一性”?

来自分类Dev

有点像头文件,我可以在C#中分隔一些定义吗?

来自分类Dev

Access 2007 vba在Excel 2007工作表中查找最后一行

来自分类Dev

对Java中的链表有点模糊

来自分类Dev

RecyclerView 中的 SharedElementTransition 有点滞后

来自分类Dev

使用Excel 2007 VBA筛选Excel文件

来自分类Dev

这是否作为 (std) 模块存在:没有中间内存分配的循环迭代(有点像 itertools.cycle)

来自分类Dev

VBA Excel中的VBA DateValue()中的错误?

来自分类Dev

Excel 2007使用VBA创建许多图表

来自分类Dev

需要Excel 2007 VBA RegEx帮助

来自分类Dev

在目录中文件中的VBA字符串搜索在Excel 2007中不起作用

来自分类Dev

在VBA中的Access 2007中编辑Excel电子表格后,如何保存

来自分类Dev

没有VBA的Dynamic Excel 2007仪表板

Related 相关文章

  1. 1

    有点像Excel VBA 2007中的反向枢轴

  2. 2

    C ++中奇怪的括号括号表示法,每个循环看起来有点像

  3. 3

    我可以使返回类型随参数的变化而有点像F#中的sprintf吗?

  4. 4

    Excel VBA有点反向查找-还有更好的选择吗?

  5. 5

    使用Python列表理解有点像zip

  6. 6

    使用Python列表理解有点像zip

  7. 7

    查询有点像EVA模型

  8. 8

    这个函数有点像单例吗?

  9. 9

    VBA图片不在Excel 2007中显示

  10. 10

    从Excel 2010中的VBA刷新电源枢轴的简单方法?

  11. 11

    有点像地图,但有一个价值?

  12. 12

    AngularJS:ng单击img?使用jQuery处理图片(有点像画廊)?

  13. 13

    HTML 文本作为 POST 切换(有点像单选按钮)?

  14. 14

    Excel图表(VBA)中的点

  15. 15

    在VBA中创建反向索引的有效方法

  16. 16

    Excel 2007 VBA暂停宏

  17. 17

    如何使用布尔列(有点像单选按钮)强制执行“唯一性”?

  18. 18

    有点像头文件,我可以在C#中分隔一些定义吗?

  19. 19

    Access 2007 vba在Excel 2007工作表中查找最后一行

  20. 20

    对Java中的链表有点模糊

  21. 21

    RecyclerView 中的 SharedElementTransition 有点滞后

  22. 22

    使用Excel 2007 VBA筛选Excel文件

  23. 23

    这是否作为 (std) 模块存在:没有中间内存分配的循环迭代(有点像 itertools.cycle)

  24. 24

    VBA Excel中的VBA DateValue()中的错误?

  25. 25

    Excel 2007使用VBA创建许多图表

  26. 26

    需要Excel 2007 VBA RegEx帮助

  27. 27

    在目录中文件中的VBA字符串搜索在Excel 2007中不起作用

  28. 28

    在VBA中的Access 2007中编辑Excel电子表格后,如何保存

  29. 29

    没有VBA的Dynamic Excel 2007仪表板

热门标签

归档