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

Google Sheets:使用SORT/QUERY函数正确排序圣经经文章节

解决Google表格圣经经文排序异常问题

问题原因

表格将1:12、1:2这类经文标识按文本字符串排序,文本排序是逐字符对比:1:之后的1字符编码小于2,导致1:12排在1:2前面,不符合章节号的逻辑排序规则。

解决方案

列格式设置无法直接解决(格式仅改变显示样式,不修改单元格值的类型),需通过公式提取章节数字作为排序依据:

方案一:用辅助列拆分章节排序

  1. 给QUERY返回的结果新增两列,提取章、节的数字值:
    • 章号提取公式:=LEFT(Col5, FIND(":", Col5)-1)*1(乘1将文本转为数字)
    • 节号提取公式:=RIGHT(Col5, LEN(Col5)-FIND(":", Col5))*1
  2. 用SORT函数按章号、节号依次升序排序:
    =SORT(QUERY({'1 Chronicles'!A:O,Ezra!A:O}, "select Col4, Col5, Col1, Col2, Col3 where Col4 contains 'Matthew'"), 5, TRUE, 6, TRUE, 7, TRUE)
    
    注:公式中6、7为新增章号、节号列的位置,需根据实际调整。

方案二:无需辅助列,直接生成排序键(推荐)

用LET函数封装中间结果,直接生成排序依据,避免手动添加辅助列:

=LET(
  raw_data, QUERY({'1 Chronicles'!A:O,Ezra!A:O}, "select Col4, Col5, Col1, Col2, Col3 where Col4 contains 'Matthew'"),
  chapter_num, ARRAYFORMULA(LEFT(INDEX(raw_data,,5), FIND(":", INDEX(raw_data,,5))-1)*1),
  verse_num, ARRAYFORMULA(RIGHT(INDEX(raw_data,,5), LEN(INDEX(raw_data,,5))-FIND(":", INDEX(raw_data,,5)))*1),
  SORT(raw_data, chapter_num, TRUE, verse_num, TRUE)
)

注:原公式存在引号嵌套错误,已修正为标准Google表格QUERY语法(双引号包裹完整查询语句,内部字符串用单引号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:36:20