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

如何修改Google Sheet自定义脚本实现多格式薪资数字提取

薪资提取自定义函数优化方案

核心优化点

  • 调整匹配顺序:将Lookup表的待匹配数值按字符串长度从长到短排序,避免10000被误识别为1000这类截断问题
  • 新增多格式适配:自动处理千位分隔符逗号、k/K后缀的薪资格式,统一归一化后再匹配
  • 兼容原有使用逻辑:无需调整函数调用方式,直接替换原有脚本即可生效

优化后完整代码

/**
* @customfunction
*/
function salary(text, list){
  var result = 'Negotiable';
  // 过滤空值后按字符串长度降序排序,优先匹配更长的数值避免截断
  list = list.flat().filter(Boolean).sort((a,b) => String(b).length - String(a).length);
  
  // 对输入文本做归一化处理,统一不同格式的薪资表达
  const normalizedText = text.toLowerCase()
    // 移除千位分隔符逗号
    .replace(/,/g, '')
    // 将k/K后缀的数值转换为标准数字,如4.5k转为4500、9k转为9000
    .replace(/(\d+\.?\d*)k/g, (match, num) => Math.round(parseFloat(num) * 1000));
  
  // 遍历匹配,同时支持原格式和归一化格式匹配
  for(let str of list){
    const strVal = String(str);
    if(text.includes(strVal) || normalizedText.includes(strVal)){
      result = strVal;
      break;
    }
  }
  return result;
}

使用说明

和原有调用方式一致,在D列对应单元格输入公式=salary(A2,'Data Lookup'!A:A),下拉填充即可适配以下薪资格式:

  • 无格式整数:2000、12000、30000
  • 带千位分隔符数字:20,000、35,000、100,000
  • 带k/K后缀薪资:4.5k、9K、12.5k

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:06:07