You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Google Apps Script统计函数,仅当指定列满足条件时计数目标列值的出现次数

如何修改Google Apps Script统计函数,仅当指定列满足条件时计数目标列值的出现次数

我来帮你调整这个统计函数!你的需求是只统计K列为空的行里B列值的出现次数,只需要对原代码做两个关键修改就可以实现,我给你一步步说明:

首先,原代码里的范围'B1:A' + last不仅把A、B列的顺序搞反了,还没包含我们需要判断的K列数据,所以第一步要修正数据范围,把B列和K列都包含进来;第二步就是在计数的时候加个判断条件,只处理K列为空的行。

修改后的完整代码如下:

function countRecords() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  const last = sheet.getLastRow();
  // 调整范围,获取B列到K列的所有行数据(包含我们需要的B列值和K列判断条件)
  const range = 'B1:K' + last;
  const data = sheet.getRange(range).getValues();
  
  const counts = {};

  // 遍历每一行数据,添加判断逻辑
  data.forEach(function (row) {
    const bColumnValue = row[0]; // 取当前行B列的值(数组索引从0开始,B是第0位)
    const kColumnValue = row[9]; // 取当前行K列的值(B到K一共10列,K是第9位)
    
    // 判断K列是否为空:处理空白单元格、空字符串、仅空格的情况
    if (!kColumnValue || kColumnValue.toString().trim() === '') {
      // 只有K列为空时,才累加B列值的计数
      counts[bColumnValue] = (counts[bColumnValue] || 0) + 1;
    }
  });
  
  var result = Object.entries(counts);
  return result; 
}

关键修改点说明:

  • 范围修正:把原范围改成'B1:K' + last,这样我们能同时获取到每一行的B列值和K列状态,满足判断需求
  • 条件判断:在遍历每行数据时,先检查K列是否为空(包含空白单元格、空字符串、仅含空格的情况),只有符合条件的行才会被计入统计
  • 计数逻辑:保持原有的计数逻辑不变,只是增加了前置判断,确保统计的准确性

用你给出的示例数据测试的话,这个函数会返回[["Val1", 2], ["Val2", 1]],完全符合你的预期。

备注:内容来源于stack exchange,提问作者Gary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 14:39:31