首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在google sheets中修正公式解析错误后的“设置公式”?

如何在google sheets中修正公式解析错误后的“设置公式”?
EN

Stack Overflow用户
提问于 2019-03-26 18:54:52
回答 5查看 972关注 0票数 5

我有问题的公式解析错误后使用的设置公式在谷歌脚本。

我在代码中使用了\来转义双引号",但是在运行脚本之后,公式上显示了解析错误。公式本身应该是正确的,因为如果我手动复制和粘贴,一切都会正常工作。我可以在添加一个空格后尝试在"function line"中编辑公式,公式解析错误将消失。

哑光

代码语言:javascript
运行
复制
matvyr.setFormula("=SUMIFS('Náklady'!G:G;'Náklady'!A:A; CONCATENATE(AG1; INDIRECT(\"RC[-31]\";FALSE));'Náklady'!H:H;AG7)");

编辑公式前的错误屏幕截图

只需在公式代码中添加一个空格

EN

回答 5

Stack Overflow用户

发布于 2020-10-09 07:06:02

与问题没有直接关系,但如果使用setFormulasR1C1批量设置公式,并且缺少一个或多个公式(例如,未设置),则简单地将getFormulasR1C1映射到setFormulasR1C1将导致公式解析#ERROR

要解决这个问题,必须截取单元格值。由于没有公式的单元格由空字符串表示,因此可以利用||运算符。下面是一个示例实用程序,用于复制保留单元格引用的公式:

代码语言:javascript
运行
复制
const copyFormulas = ({ source, target, indices = [], onError = console.warn } = {}) => {

    try {

        const valsToCopy = source.getValues();
        const toCopy = source.getFormulasR1C1();
        const toLeave = target.getFormulasR1C1();

        const copied = toCopy.map((row, ri) => row.map((cell, ci) => {
            if (!indices.includes(ci)) {
                return toLeave[ri][ci] || valsToCopy[ri][ci];
            }

            return cell || valsToCopy[ri][ci];
        }));

        target.setValues(copied);

        SpreadsheetApp.flush();

        return true;
    }
    catch (error) {
        onError(error);
        return false;
    }

};
票数 3
EN

Stack Overflow用户

发布于 2019-03-27 19:01:25

如果您将剩余的A1表示法转换为R1C1表示法,然后使用setFormulaR1C1而不是setFormula,会发生什么?

这条评论解决了这个问题。如果我把它完全重写成R1C1,它就能正常工作。

票数 1
EN

Stack Overflow用户

发布于 2020-11-11 04:56:37

函数名称使用英语。

问题正文中的第一个屏幕截图显示了INDIRECT和FALSE的非英语函数名称,但第二个函数以英语显示它们。

显然,问题是函数名转换是由Google Sheets UI完成的,而不是由服务器端的Google Sheets引擎完成的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55355400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档