Excel 的一个常见用途是创建一个电子表格,其功能可作为某种交易分类账,其中每行中的一个或多个字段是通过将当前行中的一个或多个值添加到前一行中的值来计算的。
例如,如果 C 列保存交易金额,D 列保存余额,则 D3 行中的公式可能是 =D2+C3。此公式将对分类账中的每一行重复。
维护此类电子表格时常见的烦恼是,如果您在这种分类账的中间插入一行,则计算余额时可能会跳过该行 - 后续行中的公式必须与插入行中的公式一起更新。
您有什么技巧可以避免这些问题吗?
答案1
对于单元格 D3 中的余额公式,请=C3+OFFSET(C3,-1,1)
根据您的示例使用,其中 C3 包含金额,D2 包含之前的余额。这样,当您插入一行时,您只需输入新值并从其他行之一复制余额公式即可。
通过使用 OFFSET 公式,您不必更新余额列中的每个单元格。
答案2
您有多种选择,其中一种可能是,一个 Excel 字段保存整行的总和。如果您现在添加一行,则无关紧要。
我使用的另一种解决方案是总和获取行号 1,然后我在那里写入 sum(A1:A1000),很清楚我当前的最高数字是 150。这样我可以添加行并且它们仍然计数。
解决方案 3 是检查哪个程序中的哪些操作会使电子表格自动更改总数。例如,在数字中,字段 A16 包含:sum(A1:15),如果我在第 15 行之前添加一行,而不是第 16 行,则会自动更改为包含 sum(A1:16) 的 A17!所以我总是在末尾保留一行空白,并在其之前添加新行!我认为这在 excel 和 openoffice 中也有效......
答案3
使用 OFFSET 的 (好) 解决方案的问题在于,如果您添加一列 (而不是一行),则公式将不再起作用。简而言之,在这种情况下,OFFSET 可以防止您添加行,但不能防止您添加列。另一种方法是在 D3 中使用以下公式,您可以根据需要将其复制任意多次:
=SUM(C$2:C3)
答案4
当我添加新行时,我会选择整行(单击 A 列左侧的实际行号),然后使用 CTRL-D “复制”其上方的行。然后我更改数字和不基于公式的文本。但您说得对,如果您使用您描述的某种“累计总计”或“累计”值,那么在中间添加行时这无济于事。我喜欢 Toc 使用 SUM(C$2:C3) 的响应,因为它不会出现此问题。