MS Excel - 运行 公式或根据随机行选择保存先前的值

MS Excel - Run formula or save previous value based on random row selection

我有一个 Excel sheet,我正在 select 根据数字带随机排列。我最初的目标是 select 一行并保存它被随机数生成器 select 编辑的时间。但是,由于 rand() 函数的重新计算和波动性,我无法为所有行保存 selection 时间;只有当前的。

  |  A   |     B       |      C      |  D  |E|F|  G   |  H   |     I    |
 -+------+-------------+-------------+-----+-+-+------+------+----------+
 1| Name | Time Save   | Time        | Blk | | | Rand | Item | Itm Name |
 2| A    | 0           | 0           | 0   | | | 727  | 8    | H        |
 3| B    | 0           | 0           | 100 |
 4| C    | 0           | 0           | 200 |
 5| D    | 0           | 0           | 300 |
 6| E    | 0           | 0           | 400 |
 7| F    | 0           | 0           | 500 |
 8| G    | 0           | 0           | 600 |
 9| H    | 42814.58888 | 42814.58888 | 700 |
10| I    | 0           | 0           | 800 |
11| J    | 0           | 0           | 900 |

最初我认为 value() 函数可能会模拟手动 Paste Special > Value 命令并有效地 "freeze" 当前值,但这是不工作(没有真正的惊喜)。

在弄清楚我做错了什么之前,我能够重复键入 F9 并成功地观察到 C 列中的浮点时间戳随机跳转并且它的值如预期的那样增加。此外,这将反映在 B 列中。但是,之前的时间不会被保存,而是重置为 0。

我最终发现循环引用解决了我的问题。我没有在 B 列中使用 =VALUE(Cx),而是最终想到了测试 C 列中的当前值是否等于 0(未选中)的想法,然后使用 循环引用 ,如果 B 为 0,则保存之前的值,如果不是,则更新:

Bx: =IF(Cx>0,Cx,Bx)

显然,这给出了标准的循环引用警告,但由于这是故意的,所以我绕过了它。现在我看到了:

  |  A   |     B       |      C      |  D  |E|F|  G   |  H   |     I    |
 -+------+-------------+-------------+-----+-+-+------+------+----------+
 1| Name | Time Save   | Time        | Blk | | | Rand | Item | Itm Name |
 2| A    | 42814.62031 | 0           | 0   | | | 159  | 2    | B        |
 3| B    | 42814.62052 | 42814.62052 | 100 |
 4| C    | 42814.62021 | 0           | 200 |
 5| D    | 42814.62050 | 0           | 300 |
 6| E    | 42814.62043 | 0           | 400 |
 7| F    | 42814.62045 | 0           | 500 |
 8| G    | 42814.62046 | 0           | 600 |
 9| H    | 42814.62021 | 0           | 700 |
10| I    | 42814.61980 | 0           | 800 |
11| J    | 42814.62015 | 0           | 900 |

B 列上添加一些花哨的颜色比例条件格式并按住 F9,我可以看到单元格逐渐变红,直到它们重新绘制自己选中后为绿色。