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

Google Sheets AppScript:如何为A列范围返回最高匹配字符数

处理A列范围与N列的最长连续匹配字符数

以下是修改后的代码,实现处理A1:A1000范围,计算每个A列单元格在N列中能找到的最长连续匹配字符数,并将结果写入对应行的S列:

function countMaxCommonCharactersInOrder() {
  var sheet = SpreadsheetApp.getActiveSheet();
  // 读取A1:A1000的所有数据
  var dataA = sheet.getRange("A1:A1000").getValues();
  // 读取N列所有数据
  var dataN = sheet.getRange("N:N").getValues();
  
  // 遍历A列每个单元格
  for (var aRow = 0; aRow < dataA.length; aRow++) {
    var searchString = dataA[aRow][0].toString();
    var maxCount = 0; // 存储当前A单元格对应的最长连续匹配长度
    
    // 遍历N列每个单元格,比对并更新最大值
    for (var nRow = 0; nRow < dataN.length; nRow++) {
      var text = dataN[nRow][0].toString();
      var currentCount = getLongestCommonSequenceLength(searchString, text);
      if (currentCount > maxCount) {
        maxCount = currentCount;
      }
    }
    
    // 将结果写入对应行的S列(第19列)
    sheet.getRange(aRow + 1, 19).setValue(maxCount);
  }
}

function getLongestCommonSequenceLength(str1, str2) {
  var maxLength = 0;
  var currentLength = 0;
  var str2Pointer = 0;
  
  for (var i = 0; i < str1.length; i++) {
    var matched = false;
    while (str2Pointer < str2.length) {
      if (str1[i] === str2[str2Pointer]) {
        currentLength++;
        str2Pointer++;
        matched = true;
        break;
      } else {
        // 不匹配时更新最长长度并重置当前计数
        if (currentLength > maxLength) {
          maxLength = currentLength;
        }
        currentLength = 0;
        str2Pointer++;
      }
    }
    
    // 每次循环后检查当前长度是否为最长
    if (currentLength > maxLength) {
      maxLength = currentLength;
    }
    
    // N列字符串遍历完则提前退出
    if (str2Pointer >= str2.length) {
      break;
    }
  }
  
  // 最后确认一次最长长度
  return currentLength > maxLength ? currentLength : maxLength;
}

关键修改说明

  1. 范围处理:替换原代码单个单元格读取逻辑,改为读取A1:A1000整列数据并遍历每一行
  2. 最大值记录:新增maxCount变量,跟踪当前A列单元格在N列所有内容中找到的最长连续匹配长度
  3. 匹配逻辑修正:重写匹配函数,从原累加长度>2的序列改为直接返回最长连续匹配序列的长度,贴合你“返回最高匹配字符数”的需求
  4. 结果对应写入:每个A列单元格的结果写入对应行的S列,保持行号一一对应

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 07:40:31