【发布时间】:2021-12-05 17:25:33
【问题描述】:
我想要做的只是为了在后续步骤中轻松进行查找和替换。否则,没有理由这样做。
我正在尝试获取单元格区域的值并将它们放入公式中。例如:
=VLOOKUP($A2,IMPORTRANGE("<placeholder_value>","Sheet!A:B"),2,0)
所以,如果我有如下表格:
| id | group | formula |
| -- | ------ | ------- |
| 1 | GROUP1 | |
| 2 | GROUP1 | |
| 3 | GROUP1 | |
| 4 | GROUP1 | |
| 5 | GROUP1 | |
| 6 | GROUP2 | |
| 7 | GROUP2 | |
| 8 | GROUP2 | |
| 9 | GROUP2 | |
| 10 | GROUP2 | |
我希望id <=5 的公式为:
=VLOOKUP($A2,IMPORTRANGE("GROUP1","Sheet!A:B"),2,0)
我希望id >5 的公式为:
=VLOOKUP($A2,IMPORTRANGE("GROUP2","Sheet!A:B"),2,0)
然后,当我为 GROUP1 和 GROUP2 生成单独的文件时,我可以在 MASTER 中找到替换为实际文档 ID 并通过 VLOOKUP 链接文档,以便在 GROUP1 和 @987654332 中进行更新@ 反映在 MASTER 中。 这是一个过于简单的例子。
所以我到目前为止所做的尝试是:
let placeholderRange = this.sheet.getRange(2, this.groupColumn, this.lastRow - 1, 1);
let formula = '=' + placeholderRange.getValue();
// let formula = '=' + placeholderRange.getValues();
// let formula = '=' + placeholderRange.getDisplayValue();
// let formula = '=' + placeholderRange.getDisplayValues();
formulaRange.setFormula(formula);
在.getValue() 和.getDisplayValue() 的情况下,它只使用它找到的第一个值,因此它会将GROUP1 放在每个公式中,而不是在到达这些记录时更改为GROUP2。
对于.getValues() 和.getDisplayValues(),它只是将该范围内的所有值的数组添加到公式中。
我可以使用for 循环来完成我想要做的事情,但最初尝试避免这种情况,因为这会减慢自动化速度。
对如何实现这一点有什么建议吗?
【问题讨论】:
-
我是否正确阅读了这一点,唯一的问题是您想要动态引用文档,具体取决于组?
-
虽然我不确定我是否能正确理解你的问题,但我提出了一个修改后的脚本作为答案。你能确认一下吗?如果我误解了您的问题并且没有用,我深表歉意。
标签: google-apps-script google-sheets google-sheets-formula