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

Google Sheets脚本实现:提取单元格内特定公司名至指定列

解决Google Sheets提取多文本中公司名称的问题

嘿,我来帮你搞定这个提取公司名称的需求!你现有的脚本只是简单判断单元格是否等于固定文本,完全没处理“从多内容里提取不同公司名”的核心逻辑,咱们来重写一下适配你的场景。

方案1:已知固定公司列表(推荐,准确率高)

如果你的目标公司名称是固定的一批,咱们可以直接基于这个列表去匹配提取,步骤如下:

改进后的脚本

function onOpen() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const menuEntries = [{name: "Copy Company Name to Col J", functionName: "fillColJ"}];
  ss.addMenu("Move Data", menuEntries);
}

function fillColJ() {
  const activeSheet = SpreadsheetApp.getActiveSheet();
  const allData = activeSheet.getDataRange().getValues();
  
  // 👇 替换成你实际需要提取的所有公司名称
  const targetCompanies = ["Alpha Corp", "Beta Inc", "Gamma Ltd", "Delta Group", "XX科技公司"];

  allData.forEach((row, rowIndex) => {
    const cellText = row[5]; // 对应第6列(F列),数组索引从0开始
    if (typeof cellText !== 'string') return; // 跳过非文本单元格,避免报错

    // 从单元格内容里筛选出存在的公司,自动去重
    const foundCompanies = [...new Set(
      targetCompanies.filter(company => cellText.includes(company))
    )];

    // 取前2-3个匹配到的公司,用逗号分隔
    const resultText = foundCompanies.slice(0, 3).join(", ");

    // 写入同行的J列(第10列)
    activeSheet.getRange(rowIndex + 1, 10).setValue(resultText);
  });
}

使用说明

  1. 把脚本里的targetCompanies数组替换成你实际要提取的所有公司名称;
  2. 保存脚本后,刷新你的Google Sheets表格,顶部会出现「Move Data」菜单;
  3. 点击「Copy Company Name to Col J」,脚本就会自动遍历每一行,提取F列里的公司名并写入J列。

方案2:自动识别公司名(无固定列表时用)

如果公司名称没有固定列表,但有统一格式(比如英文的XX Corp/Inc/Ltd、中文的XX公司/集团),可以用正则表达式来匹配:

适配正则的脚本片段

把上面fillColJ函数里的匹配部分替换成这段:

// 👇 根据你的公司名格式调整正则,这里是中英文通用示例
const companyRegex = /([A-Za-z\s]+(?:Corp|Inc|Ltd|Group))|([\u4e00-\u9fa5]+(?:公司|集团))/g;
const matches = cellText.match(companyRegex);
// 去重后取前2-3个
const foundCompanies = matches ? [...new Set(matches)] : [];

注意事项

  • 正则需要根据你实际的公司名格式调整,比如如果还有「XX股份」,就把(?:公司|集团)改成(?:公司|集团|股份);
  • 这种方式可能会误匹配,建议先小范围测试调整正则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:05:35