【问题标题】:Excel: How to calculate movement across columns?Excel:如何计算跨列的移动?
【发布时间】:2021-09-16 09:39:20
【问题描述】:

我有一个数据集,其中的数量可以向前移动任意数量的列,向后移动任意数量的列,可以删除或添加。

我只想找到那些已经向前和向后移动的平衡点,而不管那些被添加或删除的。例如,在下面的 f 行中,虽然在第 4 列中添加了 100 余额,但我只想要从第 3 列移动到第 2 列的 300 余额。

当前周:

ID 1 2 3 4
a 100 0 0 0
b 0 500 0 0
c 300 100 0 0
d 1200 200 100 0
e 0 0 0 100
f 200 300 0 100

上周:

ID 1 2 3 4
a 0 0 0 100
b 500 0 0 0
c 300 0 100 0
d 1200 0 100 200
e 100 0 0 0
f 200 0 300 0

由于某种原因,第二张桌子不想工作,所以这是一张图片:

动作列表如下:

a:从 4 向前拉 -> 1:100
b:从 1 -> 2 推送:500
c:拉动:100
d:拉动:200
e:推送:100
f:拉动:300


输出

这就是我希望输出最终的样子:
拉动:700
推送:600



提前谢谢你,如果有问题请告诉我!

【问题讨论】:

  • 这看起来很棘手!在实践中会有多少行和列? VBA 解决方案是否可以接受?每个(非零)数字的大小是否有任何限制?
  • @TomSharpe 正好有 7 列,因为它是一个每周移动的操作跟踪器。除了前两列是开始至今和本月之外,每一列都是未来的一个月。如果可能的话,VBA 很好,但我希望每周有一个数据集来可视化。推出的数字(减速) 向前拉的数字(加速)。大小通常会小于 300 万,并且永远不会为负数。谢谢
  • 有 200 到 6,000 行
  • 好的,这很有帮助。前一周和本周的行数是否相同,顺序相同(如在您的示例数据中),还是您必须在 ID 列上进行查找?我认为最简单的方法是每对行有一个单独的公式 - 然后需要几个帮助列来存储每对行的推/拉计数。
  • @TomSharpe 谢谢汤姆。这些行每周都会有所不同,但我不需要每周向前和向后移动的唯一 ID 的详细信息,只需要总数。顺序基于值,因此顺序将不一致。我目前的方法是手动检查它们,看看有什么移出,看看有什么向前移动,然后这样计算,但非常耗时。

标签: excel excel-formula finance


【解决方案1】:

让我们从尽可能简单的开始。现在只需假设行的顺序相同,并且您不介意辅助列。然后您可以使用 Match 来查看匹配金额移动到哪里:

=SUM((MATCH(B13:E13,B3:E3,0)<COLUMN(B:E)-1)*B13:E13)

和

=SUM((MATCH(B13:E13,B3:E3,0)>COLUMN(B:E)-1)*B13:E13)

把它们拉下来然后加起来

稍后需要对不匹配的情况进行一些错误处理

【讨论】:

  • 这是完美的汤姆!你是救命稻草,谢谢
猜你喜欢
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多