当前位置: 首页 > 知识库问答 >
问题:

改进计数、计数公式

越朗
2023-03-14

我已经创建了一个谷歌表单。在单个google工作表中有多个工作表(选项卡)。

我有一张名为Dashboard

还有其他一些表单,如kkwebvirtual。除仪表板外,目前还有2张其他图纸。所有两张图纸都有相同的列

我想在dashboard工作表上执行一些计算。

  1. 计算总任务数

=计数(kkweb!B5:B,虚拟!B5:B)

=(COUNTIF(kkweb!D5:D,“新请求”))(COUNTIF(virtual!D5:D,“新请求”))

注意:我上面的公式工作得很好,但我将有20张而不是2张。所以我的计算公式是

=COUNT(kkweb!B5:B,虚拟!B5:B,第三张!B5:B,第4张!B5: B, Sheet5!B5:B,第6张!B5: B, Sheet7!B5: B)etc

每次有新的表格出现时,我所有的公式都会很长。

有什么简单的方法可以在谷歌表格中进行计算吗?

我们也许可以用name config创建额外的工作表,并在那里添加工作表名称

注意:每张图纸将有不同的名称,而不是图纸1、图纸2、图纸3。

其次,如何根据所有工作表中的其他列计算值。

例如:=(COUNTIF(kkweb!D5:D,“新请求”)此公式计算值为kkweb工作表中D5:D的新请求。我还有一列C5:C,其中包含“约翰”、“卡特里娜”等名字

所以基本上我想检查有多少新请求是约翰的

共有1个答案

劳宇
2023-03-14

有几种方法可以解决这个问题。这取决于你想走多远,如你喜欢哪条路线。在内部,没有检测图纸名称的公式,因此您需要一个脚本。例如,有几种方法:

function SNAME(option) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet()
  var thisSheet = sheet.getName(); 
  if(option === 0){                  // ACTIVE SHEET NAME =SNAME(0)
    return thisSheet;
  }else if(option === 1){            // ALL SHEET NAMES =SNAME(1)
    var sheetList = [];
    ss.getSheets().forEach(function(val){
       sheetList.push(val.getName())
    });
    return sheetList;
  }else if(option === 2){            // SPREADSHEET NAME =SNAME(2)
    return ss.getName();    
  }else{
    return "#N/A";                   // ERROR MESSAGE
  };
};

然后,您可以在此基础上创建一个字符串生成器

=ARRAYFORMULA(TEXTJOIN(",", 1, SNAME(1)&"!D5:D"))

甚至可以复制粘贴完整公式:

=ARRAYFORMULA("=COUNT('"&TEXTJOIN(",'", 1, SNAME(1)&"'!B5:B")&")")

当然,如果您精通JS,并且使用一些花哨的onOpen/onEdit或时间触发器来运行它,则可以通过脚本进行完全管理

至于约翰/卡特里娜飓风问题,您可以使用COUNTIFS而不是COUNTIF。在那里,您可以定义多个条件以获得所需的计数。例如:

=COUNTIFS(kkweb!D5:D, "New Requests", kkweb!E5:E, "John")
 类似资料:
  • 我能够通过注册和注销侦听器来开始和停止使用录制步骤。 但是,当应用程序被销毁时,通过< code>SensorEvent对象传递给我的应用程序的实际值不会重置为零。如果我关闭应用程序并重新启动它,或者即使我用更新重新编译我的应用程序,计数器也会从它停止的地方开始计数。 如果我运行其他使用步数计数器传感器的应用程序,它们会独立计算步数并重置计数器。 传感器是否有特定于应用程序的缓存?将传感器重置为零

  • 如何计算下面代码中的整数值: 我想实现如果0是超过1所以将打印假如果1是超过0将打印真

  • 给定一个数N,我需要找到从1到N至少有一个素数(2,3,5或7)的数的计数。 现在N可以高达10^18。解决这个问题的最佳方法是什么。 例句:设N=100,答案是64。 请帮助解决这个问题。 代码:这是主要功能,但显然不是好方法

  • 我正在尝试学习aws运动流,并按照aws运动流留档。每个分片最多摄取1MB/秒或1000条记录/秒,并允许读取高达2MB/秒和每秒5个事务进行读取。 所以有人能解释一下这里的逻辑吗?谢谢。

  • 问题内容: 有一个类似的问题,所以建议使用NumberFormat,这是我所做的。 我正在使用NumberFormat的parse()方法。 我得到的结果是 1.93 我真的没想到这会起作用,因为1.930000000000E + 02是一个看起来非常不寻常的数字,我是否必须先进行一些字符串解析才能删除零?还是有一种快速而优雅的方法? 问题答案: 当对科学计数形式的表达式使用DecimalForm