【问题标题】:Copy values from pivot table to sheet in specific cell将数据从数据透视表复制到特定单元格中的工作表
【发布时间】:2015-06-29 06:44:23
【问题描述】:

我有一些数据显示在数据透视表中,我目前从该数据透视表中将它们复制并粘贴到另一个具有相应当天的表中,有如此多的操作编号,每天大约需要 1 小时才能完成此过程,我我正在尝试制作一个宏,以帮助我在更短的时间内完成此过程

这是我复制数据的数据透视表

这里是我粘贴它的地方(在这个表中我用它来创建一些图表)

两个表都包含许多不同数量的操作,您可以想象这是非常乏味的。

感谢任何可以帮助我解决此问题的帮助或想法,我愿意尝试其他一些替代方案,例如公式、vba(首选),甚至是 c# 的 closedxml。

我不知道我是否在解释我自己? 这是我的逻辑。

  1. 查找操作编号
  2. 复制“Sx”的总和
  3. 在其他工作表中查找相同的操作编号。
  4. 在相应的日期粘贴值。
  5. 寻找与下一个“Sx”相同的操作编号
    .
    .
  6. 结束

现在我只专注于 Operation1,因为在 Operation2 中我使用了另一张表格,我在其中做同样的事情。 (可能会使用与 Operation1 相同的代码)。

澄清一下,我并不是在要求某人只是给我解决方案(尽管我们对此表示赞赏),但任何有关这方面的指南都是有帮助的。

【问题讨论】:

    标签: c# vba excel pivot-table


    【解决方案1】:

    您不需要 VBA 来执行此操作。使用GETPIVOTDATA

    考虑以下复制数据:

    在上面的示例中,我在您的屏幕截图中复制了您的一些数据,从中进行了透视,将其放在同一张工作表中,并将您需要填充的表格放在其下方。然后我使用GETPIVOTDATA。我觉得我需要向您展示它是如何完成的,即使它在我发布的链接中得到了很好的解释。

    所以我们使用这个公式:

    =GETPIVOTDATA(""&$I18,$I$2,"Date",J$17,"Opt",$I$16,"Id",$J$16 的总和)

    Cell J14。请注意,我们没有在您的目标表上使用 Day 1, Day2.. etc,而是使用了实际日期。为什么?因为我们在GETPIVOTDATA 公式中需要它。然后将公式复制到其余单元格中。

    结果:

    现在,GETPIVOTDATA 如果找不到与您提供的条件匹配的任何内容,则会出错,因此您可能希望使用 IFERROR 语句合并错误处理。

    最终公式:

    =IFERROR(GETPIVOTDATA(""&$I18,$I$2,"Date",J$17,"Opt",$I$16,"Id",$J$16),0)

    虽然您更喜欢 VBA,但我认为没有比内置 Excel 功能更好的方法更适合您的情况。

    【讨论】:

    • 此方法是否会影响数据透视表是否在另一个工作表中,有些我无法正确处理。 (它不显示数据)。
    • @MoralesJosue 不,它应该以同样的方式工作。但请注意,您不能直接使用我的公式。您需要创建自己的并相应地进行调整。
    • 终于让它正常工作了,不知道GETPIVOTDATA。
    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多