Excel - 在没有VBA的情况下更改另一个单元格时更新单元格值

时间:2015-01-27 23:10:18

标签: timestamp excel-formula

我想在用户更改另一个单元格时在单元格中设置时间戳,但是没有VBA,因为我希望这在无宏情况下工作。我发现的所有解决方案都使用Worksheet_Change VBA代码,所以我需要一个没有VBA的答案。

示例:用户更新A列。我希望B列记录用户更改A列时的时间戳。

1 个答案:

答案 0 :(得分:1)

这是解决问题的方法。它需要一个技巧,因为你必须打开迭代计算,因为这种方法利用了循环引用。因此,这只适用于不需要迭代计算的工作簿。

  1. 启用迭代计算,但将最大迭代次数设置为1。
  2. 在时间戳所在的每一行的B列中,使用此公式。因此对于第2行,单元格B2将包含: =IF(AND(A2<>"",C2<>A2),NOW(),IF(A2="","n/a",B2))

  3. 在C列(或任何其他未使用的列)中,放置此公式。因此对于第2行,单元格C2将包含: =IF(A2="","",IF(OR(B2="",AND(ISNUMBER(C2),A2=C2)),C2,A2))

  4. 那就是它。结果将如下所示。您可以将时间戳格式化为其他值:

    | A B C | 1| User Entry Timestamp Prev | 2| dog 6:28:55 PM dog | 3| cat 7:17:42 PM cat | 4| n/a |

    C列存储A的值,以便在更改A时,公式知道A已更改值。如果用户输入“狗”,时间戳将不会改变。细胞但是叶子“狗”#39;作为价值。当你在另一行中更改单元格A时,第2行的时间戳不会改变,这是一些捕获时间戳的excel解决方案的问题。