请注意:我知道我使用的函数会导致循环引用。我正在尝试找到解决此问题的方法。
我有一份简单的 Excel 报告,用于填写每周数据,并希望根据当前周输入的数据自动填充其他一些列。请看下面的屏幕截图:
B 列由我填写,C 列(“截至目前为止的总计”)每周自动计算。因此,第 11 行表示 QA 截至目前为止的工作量(Cell# C11) is C4+B11
。
这里的想法是,每周,我只需更新“本周工作量”单元格,每个单元格(开发、QA 或 PM)的“截至目前总工作量”都会更新。公式如下:
C24 = C24+B24
当然,这会导致循环引用。如何通过将单元格值添加到另一个值来更新给定单元格?我试图避免使用 VBA 和单元格更改事件。可以仅使用 excel 本身来完成吗?
答案1
正如我之前的评论中所提到的,我认为您的最初的想法在基本 Excel 中是不可能的,但有一种方法可以实现它 - 使用简单的 Excel 功能(2 个 Excel 函数: VLOOKUP
和SUM
)。
第一张图片是你的第一张表的样子:
下面是第二个表格,即数据表 - 如果有的话,您可以在其中输入一些数据。因此,此表格通常不会显示:
这对你有用吗?以下是对所发生情况的一些解释:
- 当您需要输入 XX 周的数据时,请转到“数据”表并在相应行的相应列中输入值。
- 它自动显示在“概览”表中
“概览”表如何工作:
- C1 中显示的数字“31”是星期数 - 由
=WEEKNUM(NOW())
C1 列自动计算 - B3 中的值通过其内部计算得出
VLOOKUP($C$1;Data!$A$2:$D$53;2;FALSE)
。它的作用是:- 从 C1 中获取值(31),
- 在数据表中某个范围的第一个(索引)列内查找它(具体来说,范围是
Data!$A$2:$D$53
:) - 当它找到值为 31 的条目时,它会从该范围的第二列(“Dev”列)中获取该值
- 同样的逻辑也适用于其他字段(B4 和 B5)
- C 列中的值是简单的
=SUM(Data!$B$2:$B$53)
顺便说一句,您看到的所有那些 $ 符号都只是为了确保单元格范围(在一个单元格公式中指定)在复制到其他地方时不会自动更改。对于此答案,您可以随意忽略它们。