Google Sheets自定义下拉菜单:显示全称仅录入罗马数字
实现显示完整类别但仅录入罗马数字的下拉菜单
方法一:数据验证 + 单元格公式(无需脚本)
- 给目标区域设置下拉选项
- 选中Sheet1的
A7:A26单元格 - 点击菜单栏「数据」→「数据验证」
- 条件选择「从范围选择」,输入
supportSheet!C3:C12,勾选「显示下拉列表」后保存,此时下拉会显示完整的类别文本
- 选中Sheet1的
- 提取罗马数字
- 在Sheet1选空白辅助列(如B列),在B7单元格输入公式:
=REGEXEXTRACT(A7,"^[IVXLCDM]+") - 下拉填充B7到B26,B列会自动提取A列选中内容里的罗马数字
- 若需将罗马数字放回A列,可复制B列内容,右键A列→「选择性粘贴」→「值」
- 在Sheet1选空白辅助列(如B列),在B7单元格输入公式:
方法二:Google Apps Script自动替换(自动完成)
如果需要选择后自动替换为罗马数字,用脚本更高效:
- 打开Google Sheets,点击「扩展程序」→「Apps Script」
- 删除默认代码,粘贴以下脚本:
function onEdit(e) { const targetRange = e.range; // 校验编辑单元格是否在Sheet1!A7:A26范围内 if (targetRange.getSheet().getName() === "Sheet1" && targetRange.row >=7 && targetRange.row <=26 && targetRange.column ===1) { const value = targetRange.getValue(); // 提取开头的罗马数字 const romanNum = value.match(/^[IVXLCDM]+/); if (romanNum) { targetRange.setValue(romanNum[0]); } } }
- 点击「保存」,给脚本命名(如RomanDropdown)
- 返回Sheet1测试:选择下拉菜单的完整类别,单元格会自动替换为对应罗马数字
注意事项
- 确保
supportSheet!C3:C12的内容格式统一为「罗马数字 - 类别名称」,否则正则表达式可能无法准确提取 - 脚本的
onEdit触发器会自动触发,无需手动运行
内容的提问来源于stack exchange,提问作者Lennart
相关产品推荐
相关产品推荐

