regex - 具有多个级别的 Countif 和 ArrayFormula
问题描述
我有一个公式。它有效 - 但感觉它可以变得更简单。
我在几个专栏中有很多部门。每行都有一个我们正在跟踪的项目,每列都有一个状态文本,随着我们的工作而变化。
'queue' - 它在排队等待完成并且压低了平均值
'active' - 处理中并提供平均值的一半
'done', 'ok'd', 'rcvd' - 完成并有助于最终平均数 'none' - 表示该部门在这项工作中不活跃,不应计入最终平均数。
公式为:
=iferror(((ArrayFormula(sum(countif(B3:O3,{"done","ok'd","rcvd"}))))+(countif(B3:O3,"active")/2))/(counta(B3:O3)-(countif(B3:O3,"none"))),)
该公式有效,但我正在寻找是否有更简单的方法来处理它。在这种情况下,查询或数组修改会更好吗?
如果我想根据当前应用程序的语法添加其他文本字符串怎么办?
这是一个示例表的链接,其中包含上下文。
https://docs.google.com/spreadsheets/d/1zPFAcSxM7tYjZmlATYde7qKsDoeH6AW_xjFooOZFOf4/edit#gid=0
编辑:
作为一个后续问题 - 我如何让相同的东西跨列工作?
我对解决方案进行了一些逆向工程,可以看到公式在我的工作表顶部起作用 - 但它给了我一个错误:
“MMULT 的矩阵大小不兼容。第一个矩阵 (13) 中的列数必须等于第二个矩阵 (1) 中的行数。”
这是我添加的公式(它也在链接的工作表中)。
=ARRAYFORMULA(IF(LEN(B4:N4), MMULT(IFERROR(( N(REGEXMATCH(B4:N9, "ok'd|done|ready|rcvd"))+ N(REGEXMATCH(B4:N9, "active"))/2)/MMULT(N(REGEXMATCH(B4:N9, "[^none]")),TRANSPOSE(ROW(B4:B9)^0)), 0), TRANSPOSE(ROW(B4:B9)^0)),))
解决方案
推荐阅读
- assembly - 为什么内存(x86 / nasm)中的数据段之间有空的地址空间?
- d3.js - 在系列图中使用画笔时饼图未正确更新
- google-apps-script - 如何在团队驱动器中的服务帐户创建的电子表格中使用 GAS 功能?
- sql - 如何在sql server中跨服务器插入xml数据类型
- android - 用于 AOSP 开发的 Android Studio 中未显示布局设计预览。如何启用设计预览?
- php - 调用未定义的函数 Intervention\\Image\\Gd\\imagecreatefromjpeg() - laravel
- java - 如何在java中使用post方法发送url编码数据
- c# - WCF SOAP 代理调用 API 管理失败,与 Postman 一起使用
- javascript - 在 orient db 属性值中存储为 _NOT_PARSED_
- php - 无法在 Heroku 上迁移数据库(试过 MySQL 和 PostgreSQL)