我有一张表格,其中包含名为“日期”、“费用”和“每日”的列。“日期”是日期,“费用”是数字,“每日”是计算每天总费用的公式。公式如下所示:
=IF(A2=A3,"",SUMIF(A$2:A2,A2,B$2:B$2)
检查当前行的日期是否与下一行的日期不同,如果是,则返回当前日期的行的成本总和。
当我向表中添加新数据时,就会出现问题。假设有 10 行。那么单元格 C10 将具有以下公式:
=IF(A10=A11,"",SUMIF(A$2:A10,A10,B$2:B$2)
但是如果我添加新行(例如,在选择单元格 C10 时按下 Tab 键),则 C10 的公式会自动更改为:
=如果(A10=A12,"",SUMIF(A$2:A11,A10,B$2:B$2)
此外,单元格的样式被重置,因此它不再是粗体文本,并且我在单元格旁边收到一条警告,指示“此单元格与列公式不一致”。
我该如何防止这种行为?
答案1
您可以改用 offset()。(:
因此公式就变成:
=IF(A2=offset(A2,1,0),"",SUMIF(A$2:offset(A2,0,0),A2,B$2:B$2)
在我的测试数据集中它可以工作,通过删除依赖项,添加行不会改变公式。如果没有,请分享。
p/s:事情(单元格引用更改)之所以这样发生,是因为您定义的公式“取决于”A11 值。并且“插入行”的操作将“保留”C10 公式中引用的原始单元格。由于插入行,该单元格已被“移动”到 A12。