Excel数据透视表,带宏,可根据字段名合并值?

Excel数据透视表,带宏,可根据字段名合并值?,excel,excel-formula,pivot-table,vba,Excel,Excel Formula,Pivot Table,Vba,我有一个表,表中有两个相关列“src”和“在手”。在src列中,我为每一行提供了两种类型的条目,在创建透视表时,我希望以不同的方式处理这两种条目 对于在src列中有值且字符串长度大于2的任何条目,我想在pivot表中创建一个具有该值的新行 价值观 对于“在手”字段,我想用src值获取该行下最后一个条目的“在手”值,其中 字段名为2 例如,原始表的内容为(产品名称=src): 透视表变为: ------------------------- |Name of Product|on Hand| --

我有一个表,表中有两个相关列“src”和“在手”。在src列中,我为每一行提供了两种类型的条目,在创建透视表时,我希望以不同的方式处理这两种条目

  • 对于在src列中有值且字符串长度大于2的任何条目,我想在pivot表中创建一个具有该值的新行 价值观
  • 对于“在手”字段,我想用src值获取该行下最后一个条目的“在手”值,其中 字段名为2 例如,原始表的内容为(产品名称=src):

    透视表变为:

    -------------------------
    |Name of Product|on Hand|
    -------------------------
    |foo            |7.000  |
    -------------------------
    |bar            |2.000  |
    -------------------------
    

    不幸的是,我对此没有方向感,也不知道从哪里开始。有解决这类问题的通用方法吗?

    您可以使用两个helper列来实现这一点。在
    C
    D
    列中输入下面详述的公式,并将其复制下来。然后在
    C
    D
    列上运行数据透视表

    请参见屏幕截图:

    类别基于以下公式:

    =IF(ROW()=2,A2,IF(LEN(A2)=2,C1,A2))
    
    =IF(C2<>C3,B2,0)
    
    上面说:

    • 如果行为2,则只取产品(因为它是第一行,我们无法查看“以上”值)
    • 否则,如果产品长度为2,则取上面的值
    • 否则,以产品为例,因为长度大于3,所以意味着
      bar
      成为新值
    收盘基于以下公式:

    =IF(ROW()=2,A2,IF(LEN(A2)=2,C1,A2))
    
    =IF(C2<>C3,B2,0)
    
    =IF(C2C3,B2,0)
    
    上面说:

    • 如果以下类别相同,则我们不在期末余额
    • 否则,下面的类别是新的,因此我们已达到期末余额

    创建一个包含src列长度的新标志列,并将其添加为行筛选器是否有创建标志列的链接?在这一点上,我远远落后于学习曲线。创建一列callled flags=len(A1),将其拖动到a列中的所有值,并将其添加到数据透视表行中,然后您将在基于新列的行拆分中获得不同的层次结构