Google Sheets Query如何按行尾项目经理首字母实现优雅排序
解决方案
不用新增实体辅助列,可以直接在QUERY内构造虚拟排序字段实现需求,以下两种方案按需选择:
方案1:固定后缀长度场景(推荐,写法最简单)
如果你确认所有行末尾都是(两个大写字母)的固定格式,直接用right()函数取末尾4个字符(两个字母加左右括号共4位)作为排序依据即可:
select Col2 where Col2 ends with '(CM)' group by Col2 order by right(Col2,4)
如果要避免大小写对排序的干扰,可以套一层大小写转换函数:
select Col2 where Col2 ends with '(CM)' group by Col2 order by lower(right(Col2,4))
方案2:通用场景(适配括号内字母长度不固定的情况)
如果存在括号内首字母数量不固定的情况,可以结合数组构造和正则提取,生成虚拟排序字段后再查询:
=QUERY({你的数据源范围, ARRAYFORMULA(REGEXEXTRACT(对应列范围, "\(([A-Z]+)\)$"))}, "select Col2 where Col2 ends with '(CM)' group by Col2 order by ColX", 0)
参数说明:
- 用
{}构造虚拟数组,第一部分是你的原数据源,第二部分是批量提取每行末尾括号内首字母的虚拟列 - 语句中的
ColX替换为你生成的虚拟列的序号,比如原数据源有2列,新增的虚拟列就是第3列,填Col3即可 - 末尾的
0代表数据源无表头,如果有表头请改为1
内容的提问来源于stack exchange,提问作者Normalitie
相关产品推荐
相关产品推荐

