【发布时间】: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