【发布时间】:2021-05-04 18:45:27
【问题描述】:
假设我有一张桌子:
| Quantity | Item | Value | Fetched Item | Suggestion |
|---|---|---|---|---|
| 5 | Meat | Variable | Meat | ... |
“值”列中的单元格有一个 VLOOKUP 公式来获取与“项目”同名的项目的值,如果不合适(这意味着有多个选项),则返回“变量”。 Suggestion 列中的 Cells 有一个 VLOOKUP 公式,用于获取与“Item”同名的类别中的最低值项目,如果没有这样的类别,则返回“”(这意味着该项目将在值列的搜索)。搜索后,表格如下:
| Quantity | Item | Value | Fetched Item | Suggestion |
|---|---|---|---|---|
| 5 | Meat | Variable | Meat | Cow Meat |
现在,D 列和 E 列不会被使用,因此用户将 B 列更改为包含建议的项目。
| Quantity | Item | Value | Fetched Item | Suggestion |
|---|---|---|---|---|
| 5 | Cow Meat | 300 | Meat | Cow Meat |
所以我不希望用户必须将“肉”放在“获取的项目”列中才能正常工作,所以假设该列中只有一个简单的 =B2 公式。工作表现在看起来像这样:
| Quantity | Item | Value | Fetched Item | Suggestion |
|---|---|---|---|---|
| 5 | Cow Meat | 300 | Cow Meat |
但是,建议公式引用的工作表会定期更新值,所以快进到现在牛肉比猪肉成本更高的地步。我希望表格看起来像这样:
| Quantity | Item | Value | Fetched Item | Suggestion |
|---|---|---|---|---|
| 5 | Cow Meat | 300 | Meat | Pig Meat |
这样,用户可以相应地更新 B 列。这意味着我需要某种方式让 D 列自动复制 B 列的内容如果 C 列读取“变量”,同时忽略未来对 B 列的更改。
=IF($C5="Variable",[copy $B5],"")
我猜是这样的吧?我想最简单的表达方式是“有没有办法自动运行一次公式?”,这比我的旧标题“在引用单元格时获取数据的“快照”所以它不会如果引用的单元格改变了?”,所以我已经相应地改变了它。
【问题讨论】:
-
没有。公式不能运行一次。您应该使用脚本。
-
正如 Krzysztof 所说,您可能需要 Apps 脚本。你愿意用那个吗?如果是这种情况,您会考虑提供电子表格的副本吗?
-
我以前从未使用过脚本,但我想我愿意尝试。 Here's the link 到一个你们都可以编辑的副本。
-
我不确定我是否理解所需的行为。我猜只有第一次更新 B 列,D 列应该用 B 列的值更新吗?如果稍后更新 B 列,则应忽略此更新并且不将其复制到 D 列?
-
没错。
标签: google-sheets google-sheets-formula