【问题标题】:SUMIF not strikethroughSUMIF 没有删除线
【发布时间】:2012-09-04 04:53:30
【问题描述】:

是否可以使用 Google 表格计算字段(货币)并忽略所有已应用删除线的字段?

【问题讨论】:

    标签: google-sheets google-drive-api sum strikethrough


    【解决方案1】:

    单元格格式不能用作电子表格公式的标准,因为没有公式 (AFAIK) 可以获取单元格格式。

    如果您在另一列中使用单元格值更改标记值(例如“是/否”或“x”)会容易得多。

    您可以在Apps Script 中进行操作。但是依靠格式化在 Apps Script is tricky 中进行计算。我建议有一个菜单触发函数,它可以获取“删除线”格式并生成一个“是/否”列,这样您就可以在SumIf 等常规公式中使用。

    【讨论】:

    • SUMIF 的示例,带有 A 复选框和 E 数据:=SUMIF(A1:A100, true, E1:E100)
    【解决方案2】:

    【讨论】:

    • 顺便说一句,这是一个丑陋的实现。首先,因为你错过了caching feature/bug,其次你在for循环中使用了不必要的API调用,is inefficient可能会在更长的范围内失败。最后,你应该在 StackOverflow 中粘贴你的代码,链接到你的博客是可以的,但强迫我们检查它是不好的。
    • @Cyber​​campbell 您是否有机会将此脚本作为 google 表格的附加组件发布?拥有一个实际的附加组件允许在单元格内进行实时函数调用,从而使实时值更新成为可能 (developers.google.com/apps-script/guides/sheets/functions)。这对家庭预算很有帮助,因为您可以在会计方面获得帮助(即查看您的银行账户中仍有哪些内容,因为银行需要很长时间才能更新,从而导致支出错误)。
    • 感谢这段代码!这对我帮助很大!如果其他人需要某种“CountIfNotStrikeThrough”功能,您只需要替换两行:而不是var temp = dataRange.offset(i-1, columnindex-1, 1, 1).getValue(); total = total + temp;,请执行以下total = total + 1;
    • @HenriqueG.Abreu 请随时添加代码的优化版本。这将非常有帮助。在那之前,人们仍然会照原样使用你描述的所有缺陷
    猜你喜欢
    • 2022-12-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2017-02-06
    相关资源
    最近更新 更多