Excel: 如何计算跨列移动?
Excel: How to calculate movement across columns?
我有一个数据集,其中的金额可以向前移动任意数量的列,向后移动任意数量的列,可以删除或添加。
我只想找到那些向前和向后移动的平衡,忽略那些已经添加或删除的。例如,在下面的 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
出于某种原因,第二个 table 只是不想工作所以这是一张照片:
运动列表如下:
a: 从 4 向前拉 -> 1: 100
b:从 1 -> 2 推入:500
c: 拉: 100
d: 拉: 200
e: 推送: 100
f: 拉: 300
输出
这是我希望最终输出的样子:
拉:700
推送:600
在此先感谢您,如有任何问题请告诉我!
让我们从最简单的开始。现在假设行的顺序相同并且您不介意辅助列。然后你可以直接用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)
把它们拉下来然后加起来
对于没有匹配的情况,稍后需要一些错误处理
我有一个数据集,其中的金额可以向前移动任意数量的列,向后移动任意数量的列,可以删除或添加。
我只想找到那些向前和向后移动的平衡,忽略那些已经添加或删除的。例如,在下面的 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 |
出于某种原因,第二个 table 只是不想工作所以这是一张照片:
运动列表如下:
a: 从 4 向前拉 -> 1: 100
b:从 1 -> 2 推入:500
c: 拉: 100
d: 拉: 200
e: 推送: 100
f: 拉: 300
输出
这是我希望最终输出的样子:
拉:700
推送:600
在此先感谢您,如有任何问题请告诉我!
让我们从最简单的开始。现在假设行的顺序相同并且您不介意辅助列。然后你可以直接用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)
把它们拉下来然后加起来
对于没有匹配的情况,稍后需要一些错误处理