如何在Google Sheet中实现带参数占位符的相对行列字数统计函数
Google Sheet 自定义相对单元格字数统计函数实现
一、创建自定义函数
- 打开你的Google Sheet,点击顶部菜单栏的「扩展」→「Apps 脚本」,进入脚本编辑器。
- 清空默认的
myFunction代码,粘贴以下自定义函数代码:
function RELATIVE_CHAR_COUNT(colOffset, rowOffset, ignoreSpaces = false) { // 获取当前调用函数的单元格 const activeRange = SpreadsheetApp.getActiveRange(); const currentRow = activeRange.getRow(); const currentCol = activeRange.getColumn(); // 计算目标单元格的位置 const targetRow = currentRow + rowOffset; const targetCol = currentCol + colOffset; // 获取当前工作表 const sheet = activeRange.getSheet(); // 检查目标单元格是否在工作表范围内 if (targetRow < 1 || targetRow > sheet.getMaxRows() || targetCol < 1 || targetCol > sheet.getMaxColumns()) { return "#单元格不存在"; } // 获取目标单元格的值 const targetValue = sheet.getRange(targetRow, targetCol).getValue().toString(); // 统计字数:根据参数决定是否忽略空格 let charCount; if (ignoreSpaces) { charCount = targetValue.replace(/\s/g, "").length; } else { charCount = targetValue.length; } // 处理空值情况 return targetValue === "" ? 0 : charCount; }
二、参数说明
colOffset:列偏移量。0代表当前列,正数表示向右偏移对应列数,负数表示向左偏移对应列数(比如-1就是当前单元格左侧相邻列)。rowOffset:行偏移量。0代表当前行,正数表示向下偏移对应行数,负数表示向上偏移对应行数(比如1就是当前单元格下方相邻行)。ignoreSpaces(可选):布尔值,默认false。设为true时,统计字数会忽略所有空格(包括空格、制表符等空白字符)。
三、使用示例
- 统计左侧同一行单元格的字数:
=RELATIVE_CHAR_COUNT(-1, 0) - 统计下方同一列单元格的字数(忽略空格):
=RELATIVE_CHAR_COUNT(0, 1, true) - 统计右上方第1行第2列单元格的字数:
=RELATIVE_CHAR_COUNT(2, -1)
四、注意事项
- 首次使用函数时,需要授权脚本访问你的Google Sheet数据,按照提示完成授权即可。
- 如果目标单元格为空,函数会返回
0;如果目标位置超出工作表范围,返回#单元格不存在。
内容的提问来源于stack exchange,提问作者Naomi
相关产品推荐
相关产品推荐

