将特定单元格中的值从数据透视表 table 复制到 sheet

Copy values from pivot table to sheet in specific cell

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

这是我复制数据的枢轴table

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

两个table都由许多不同数量的操作组成,你可以想象这是非常繁琐的。

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

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

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

现在我只关注 Operation1,因为在 Operation2 中我使用另一个 sheet 做同样的事情。 (可能会使用与 Operation1 相同的代码)。

澄清一下,我并不是要别人给我解决方案(虽然我很感激),但任何关于此的指南都会有所帮助。

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

考虑以下复制数据:

在上面的例子中,我在你的屏幕截图中复制了你的一些数据,从中做了一个轴心,把它放在同一个 sheet 中,还把你需要填充的 table在它下面。然后我使用 GETPIVOTDATA。我觉得我需要向您展示它是如何完成的,即使它在我发布的 link 中有很好的解释。

所以我们使用这个公式:

=GETPIVOTDATA("Sum of "&$I18,$I,"Date",J,"Opt",$I,"Id",$J)

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

结果:

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

最终公式:

=IFERROR(GETPIVOTDATA("Sum of "&$I18,$I,"Date",J,"Opt",$I,"Id",$J),0)

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