SUMIF 没有删除线
Posted
技术标签:
【中文标题】SUMIF 没有删除线【英文标题】:SUMIF not strikethrough 【发布时间】:2012-09-04 04:53:30 【问题描述】:是否可以使用 Google 表格计算字段(货币)并忽略所有已应用删除线的字段?
【问题讨论】:
【参考方案1】:单元格格式不能用作电子表格公式的标准,因为没有公式 (AFAIK) 可以获取单元格格式。
如果您在另一列中使用单元格值更改标记值(例如“是/否”或“x”)会容易得多。
您可以在Apps Script 中进行操作。但是依靠格式化在 Apps Script is tricky 中进行计算。我建议有一个菜单触发函数,它可以获取“删除线”格式并生成一个“是/否”列,这样您就可以在SumIf
等常规公式中使用。
【讨论】:
SUMIF
的示例,带有 A 复选框和 E 数据:=SUMIF(A1:A100, true, E1:E100)
【参考方案2】:
答案在这里:http://igoogledrive.blogspot.ca/2012/09/user-defined-function-to-sum-all.html
【讨论】:
顺便说一句,这是一个丑陋的实现。首先,因为你错过了caching feature/bug,其次你在for循环中使用了不必要的API调用,is inefficient可能会在更长的范围内失败。最后,你应该在 *** 中粘贴你的代码,链接到你的博客是可以的,但强迫我们检查它是不好的。 @Cybercampbell 您是否有机会将此脚本作为 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 请随时添加代码的优化版本。这将非常有帮助。在那之前,人们仍然会照原样使用你描述的所有缺陷以上是关于SUMIF 没有删除线的主要内容,如果未能解决你的问题,请参考以下文章
除了删除线之外,没有任何 AttributedString 功能可用
(紧急)关于excel中的SUMIF函数在实际应用中的问题 这个函数中的criteria 最多只能识别对应16位数的编码