减去两个单元格相对于一个单元格的值,而不直接引用它们

减去两个单元格相对于一个单元格的值,而不直接引用它们

我想要创建下表:

价值 与上一行的差异
10 0
20 10
80 60

我希望公式是通用的,不直接引用任何单元格。

以下公式有效:

=TEXT(INDIRECT(ADDRESS(ROW(),COLUMN() - 1)),"####.#") - TEXT(INDIRECT(ADDRESS(ROW() - 1,COLUMN() - 1)),"####.#")

但是,我想知道是否有办法简化或缩短它(不使用宏)。

答案1

在查看了 JohnSUN 的评论和回答后,我发现即使没有设置 R1C1 符号,下面的操作仍然有效。转到工作表 > 命名范围和表达式 > 定义thisCell并用表达式指定名称INDIRECT("RC";0)

现在,这与您的原始公式作用相同:

=OFFSET(thisCell;0;-1) - OFFSET(thisCell;-1;-1)

答案2

我不知道你是否会接受这个建议作为答案,但值得一试。

将光标放在单元格中B3。 选择工作表 - 命名范围和表达式 - 定义或者直接按Ctrl+F3。 点击添加按钮在这里

设置一个名称。任意。您可以写“abracadabra”或“Alohomora”或“AvadaKedavra”...但如果名称有意义就更好了 - 例如“NextDifference”。

写下公式。只需使用相对于当前单元格的寻址(还记得我们现在突出显示的 B3 吗?)

=A3-A2

添加命名公式

保存此新名称(添加好的

你还在牢房里吗B3? 在这里写出公式=NextDifference

结果符合预期吗?好的,所以你没有犯任何错误。(否则,请小心重复此步骤)

拉伸单元B3向下。看到了吗?每个单元格都包含相同的公式,但没有直接寻址,就像您想要的那样。选择其中一个单元格,例如,B7并按Ctrl+F3又来了。看到了吗?对于这个单元格,名称NextDifference包含公式A7-A6

现在我们开始讨论这个技巧。从表格中删除任意数量的行,将它们移到另一个位置,对表格进行排序 - 公式=NextDifference将起作用并给出正确的结果。(当然,如果您删除最上面的行,您可能会破坏这个公式 - 在这种情况下,您可以得到一个#参考!错误。但是你给出的公式也会产生同样的效果,对吗?)

相关内容