如果单元格值与 ID 匹配,则从相邻单元格中减去一个值

如果单元格值与 ID 匹配,则从相邻单元格中减去一个值
A C F G H
1 ID 分数 ID 惩罚 ID 预期的
2 1 三十 1 -4 1 22
3 2 四十六 1 -2 2 三十六
4 3 41 1 -1 3 41
5 4 20 1 -1 4 20
6 5 53 2 -10 5 52
7 6 5 5 -1 6 5

上面的表格,但在 Excel 中(显示单元格标题/格式更好)

措辞有点奇怪,所以希望图表能更容易理解。有两个单独的表,“A:B”和“D:E”。我想要实现的是,如果 D 列的 ID 值与 A 列的 ID 匹配,则 H 列应该打印出 BE 的值。

前任。

D2 checks A:A for matching ID
D2 value same as A2 value, so H2=B2-E2
D3 checks A:A for matching ID
D3 value same as A2 value, so H2=oldH2-E3
...
Dn checks A:A for matching ID
Dn value same as Ap value, so Hp=Bp(if first encounter) or oldHp(if subsequent encounter) -En
(I think I wrote that correctly)

需要注意的是,A 列始终包含所有数字 ID 及其分数,但 D 列仅显示有惩罚的 ID。

可能有一种~~简单~~的方法可以做到这一点,但我能想到的一种方法是将数据转换成二维矩阵ID 横跨 x,得分位于第 2 行,如果有惩罚则位于下面的行。这样,它只是一个简单的 SUM(r:r)。

A C F G
1 ID 1 2 3 4 5 6
2 分数 三十 四十六 41 20 53 5
3 罚则 1 -4 -10 -1
4 罚球2 -2
5 -1
6 -1
7
8 最终的 22 三十六 41 20 52 5

在实际使用中,我会用到这个,ID 数量将达到 100-1000 个(不是连续的,但值仍在上升)和数千个惩罚(并非所有 ID 都会受到惩罚,但所有受到惩罚的 ID 都会有相应的现有 ID)。矩阵可能有效,但我想它会非常庞大​​。(列最终可能会超过 ZZ)

答案1

H2: =B2+SUMIF($D$2:$D$7,G2,$E$2:$E$7)

并向下填充。

根据需要更改D&范围。E

在此处输入图片描述

相关内容