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

Google Sheets Apps Script堆叠IFs写法及总十六分计算自定义函数咨询

自定义函数实现:自定义英尺-英寸-十六分格式转总十六分单位

固定换算基准

  • 1英尺 = 12英寸
  • 1英寸 = 16个十六分单位
  • 总十六分单位计算公式:总数值 = 英尺数 * 192 + 英寸整数部分 * 16 + 十六分尾数(注:1英尺换算为十六分单位为12*16=192)

匹配示例的解析规则

按照给出的输入输出对应关系,拆分规则完全匹配示例要求:

  • 字符串长度为1:全段数值为英尺数,无英寸、十六分附属部分,例:输入"1"对应1'
  • 字符串长度为2:全段数值为英尺数,无英寸、十六分附属部分,例:输入"12"对应12'
  • 字符串长度为3:拆分规则为取第1位作为英寸整数部分,后2位作为十六分尾数,无英尺部分,例:输入"508"对应5 + 8/16 = 5.5",即5 1/2"
  • 字符串长度为4:拆分规则为取前2位作为英寸整数部分,后2位作为十六分尾数,无英尺部分,例:输入"1604"对应16 +4/16 =16.25",即16 1/4"

Apps Script 堆叠IF结构实现代码

代码采用最基础的if-else堆叠分支,无复杂逻辑,适合新手调整:

/**
 * 计算自定义格式对应的总十六分单位数值
 * @param {string} inputStr 单元格内输入的自定义格式字符串
 * @return {number|string} 换算结果或格式错误提示
 * @customfunction
 */
function CONVERT_TO_16TH(inputStr) {
  // 预处理:去除首尾空格、统一转字符串类型,避免数值格式导致的长度判断错误
  const rawInput = String(inputStr).trim();
  let total16th = 0;

  // 堆叠IF分支判断,按字符串长度匹配解析规则
  if (rawInput.length === 1 || rawInput.length === 2) {
    // 长度1/2:全段为英尺数
    const feetValue = Number(rawInput);
    total16th = feetValue * 12 * 16;
  } else if (rawInput.length === 3) {
    // 长度3:1位英寸整数 + 2位十六分尾数
    const inchInteger = Number(rawInput.slice(0, 1));
    const fractionValue = Number(rawInput.slice(1, 3));
    total16th = inchInteger * 16 + fractionValue;
  } else if (rawInput.length === 4) {
    // 长度4:2位英寸整数 + 2位十六分尾数
    const inchInteger = Number(rawInput.slice(0, 2));
    const fractionValue = Number(rawInput.slice(2, 4));
    total16th = inchInteger * 16 + fractionValue;
  } else {
    // 不支持的输入长度
    total16th = "输入格式错误:仅支持1-4位的纯数值字符串";
  }

  return total16th;
}

部署与使用步骤

  • 打开对应Google Sheets,依次点击「扩展程序」→「Apps Script」
  • 删除编辑器内默认的示例代码,粘贴上述代码后保存项目
  • 在工作表单元格中直接调用公式 =CONVERT_TO_16TH(目标单元格地址) 即可

结果验证

  • 输入"1" → 输出192(对应1英尺的总十六分单位)
  • 输入"12" → 输出2304(对应12英尺的总十六分单位)
  • 输入"508" → 输出88(对应5.5英寸的总十六分单位)
  • 输入"1604" → 输出260(对应16.25英寸的总十六分单位)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 00:57:07