【问题标题】:Transform Excel Table Using Column Value as Category使用列值作为类别转换 Excel 表
【发布时间】:2019-04-05 01:01:05
【问题描述】:

我有一个 Excel 表格,其数据结构类似于:

Name                 Team        Role        Level   Laptop Monitor
Cheryle Parish       Archers     Programmer  Level2  Dell   2
Shandi Kime          Archers     Programmer  Level2  Dell   1
Edwardo Cookson      Archers     Programmer  Level1  HP     3
Voncile Deak         Archers     Programmer  Level2  HP     3
Boyd Cueva           Climbers    Tester      Level2  HP     2
Caryn Kear           Climbers    Programmer  Level2  Apple  1
Kirsten Hirt         Climbers    Tester      Level2  Apple  3
Ayana Mayfield       Climbers    Programmer  Level2  Dell   2
Venetta Embree       Archers     Programmer  Level2  Dell   3
Herb Obryan          Archers     Programmer  Level2  Dell   2
Isobel Steinmetz     Explorers   Tester      Level2  Apple  3
Valeri Eisen         Explorers   Programmer  Level1  Dell   1
Anibal Plumlee       Explorers   Programmer  Level1  Dell   3
Floretta Tunney      Explorers   Tester      Level1  Apple  1
Lilliana Klutts      Explorers   Programmer  Level1  HP     2
Gaston Custodio      Explorers   Programmer  Level1  HP     2
Jared  Phaneuf       Explorers   Manager     Level1  Dell   3
Melvin Monsivais     Climbers    Manager     Level2  HP     2

是否有任何简单的方法来创建一个或多个新表,其中一个列代表类别并且该列中的值是另一列中的值?例如,上面的列表如果我选择“角色”,输出表是:

Programmer           Manager              Tester
Cheryle Parish       Jared  Phaneuf       Boyd Cueva           
Shandi Kime          Melvin Monsivais     Floretta Tunney      
Edwardo Cookson                           Isobel Steinmetz     
Voncile Deak                              Kirsten Hirt         
Caryn Kear
Ayana Mayfield
Venetta Embree       
Herb Obryan          
Valeri Eisen         
Anibal Plumlee       
Lilliana Klutts      
Gaston Custodio      

源表中的其他条目在新表中被丢弃。理想情况下,如果有任何重复项,则忽略重复项,并且新表只有唯一值。 VBA 解决方案可以工作,尽量避免使用外部程序。

我们可以选择任何列作为新表中的分类类别。例如,我们可以生成一个拥有特定笔记本电脑品牌的人的列表。

我能想到的最接近的方法是使用数据透视表来生成仍然需要复制和粘贴类型编辑的内容。

Manager     Jared  Phaneuf
            Melvin Monsivais
Programmer  Anibal Plumlee
            Ayana Mayfield
            Caryn Kear
            Cheryle Parish
            Edwardo Cookson
            Gaston Custodio
            Herb Obryan
            Lilliana Klutts
            Shandi Kime
            Valeri Eisen
            Venetta Embree
            Voncile Deak
Tester      Boyd Cueva
            Floretta Tunney
            Isobel Steinmetz
            Kirsten Hirt

我发现了类似Excel Categorized table by column的这个问题,但是答案并没有解决上述问题。

【问题讨论】:

  • 您可能会发现数据透视表很有用 - 不确定 data1/data2 代表什么......但您也可以在示例中使用数据功能区 > 列表 > 源拖动 a2:a4 - 然后重复另一个一个用于 a5:a7 - 请参见此处techrepublic.com/blog/microsoft-office/…
  • 不幸的是,我认为您需要提供更大的数据样本/集,以便我们更好地了解输出。据我了解,您想将分类从一列更改为另一列......(看起来大陆现在是您的主要类别,您想将所有内容重新分类为国家,这是正确的解释吗??)。如果是这样的话,就没有简单的方法来重新分类数据......

标签: excel vba pivot-table


【解决方案1】:

我知道这并不完全是您想要的,但它可能是一种折衷方案,可以让您接近而无需强迫您编写 VBA 来完成它,这可能是获得您正在寻找的东西的唯一真正方法.

您可以在这里创建一个数据透视表并将Role 放在列中,Name 放在行中,Name 再次放在Values 中,如果名称属于特别是Role。您可以使用带有LevelLaptop 或其他任何内容的数据透视表轻松交换Role

您也许可以构建一些从此数据透视表提供的公式,以获得您所需要的确切信息,但同样...这将需要更多的努力:

【讨论】:

  • 谢谢。我得出了同样的结论,除非有一些 VBA 魔法,否则数据透视表可能必须是最简单的解决方案。
  • 有一些 VBA 的魔力,但如果您对 VBA 不满意,它会是一个难以维护的野兽。
【解决方案2】:

我认为这可以使用公式来完成。可能工作量太大,甚至更难维护,但这两个链接应该是一个好的开始(抱歉没有时间提供完整的答案):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    相关资源
    最近更新 更多