我正在以编程方式向单元格编写公式。
以下代码行:
formulaCells.setFormulaR1C1('=iferror(VLOOKUP(R[0]C[3],AutoCat!A:B,2,FALSE),"Requires Category")');
将此公式充分写入目标Google表格文件中由 formulaCells
表示的所有单元格中 =iferror(VLOOKUP(D2,AutoCat!A:B,2,FALSE),"Requires Category")
但问题是公式默认为错误标记"需要类别"当它由Google Scripts编写时,如果我手动将相同的公式写入Google表格,则由VLOOKUP识别的实际项目结果。
这太令人沮丧了!
如果我将鼠标悬停在Google Script生成的公式上,VLOOKUP的真正解决方案甚至会出现在天桥上,但出于某种原因,不会出现在单元格中。
请帮忙!为什么Google Scripts生成的公式无法正确计算,手动输入的公式是否正确?
答案 0 :(得分:3)
好吧,在认为我已经耗尽了我的心理资源之后,我尝试了最后一件事,它确实奏效了。
由于某些未知原因,虽然该公式是准确的,但Google Scripts生成的公式与使用VLOOKUP无法很好地匹配,该VLOOKUP在无限范围内搜索解决方案。因此,即使VLOOKUP找到了正确的解决方案,它也没有将其显示为公式结果。
我通过在Google表格文件中创建VLOOKUP将搜索的名为 AutoCategory 的数据范围,然后将该命名范围插入到Google Scripts生成的公式和BOOM中来解决此问题。公式开始运作。
以下是脚本中的最终代码:
formulaCells.setFormulaR1C1('=iferror(VLOOKUP(R[0]C[3],AutoCategory,2,FALSE),"Requires Category")');
以下是Google表格中生成的最终公式: = iferror(VLOOKUP(D2,AutoCategory,2,FALSE),“需要类别”)
答案 1 :(得分:2)
setFormulaR1C1
需要使用R[0]C[3]
提供的R1C1表示法,但AutoCat!A:B
为A1表示法。
您可以切换到setFormula()
并仅传入A1表示法,但我认为在与Google Apps脚本结合使用时,使用命名范围是一种非常好的做法。