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

如何使用电子表格QUERY函数将多列中的数字与点合并为单列?

解决多列数字+点提取合并到单列的问题

我懂你想要实现的效果——把多列里所有包含「数字+小数点+数字」的内容提取出来,合并成单列(就是你说的绿色区域那种效果)。单纯用QUERY函数确实没法一步到位,但我们可以结合Google Sheets里的其他函数,或者用QUERY配合数组操作来搞定,下面给你几个实用的方案:

方案1:用QUERY+FLATTEN快速筛选

如果你的目标是把多列中整个单元格就是带点的数字(或者单元格里只有这一个目标内容)提取到单列,这个公式最直接:

=QUERY(FLATTEN(A:C), "WHERE Col1 matches '\d+\.\d+'", 0)

各部分作用解释:

  • FLATTEN(A:C):把A到C列的所有单元格内容平铺成一列,相当于把多列数据转成单列临时数据
  • QUERY(..., "WHERE Col1 matches '\d+\.\d+'"):用QUERY的匹配规则筛选出临时列中符合「至少一个数字+小数点+至少一个数字」的内容
  • 最后的0表示不需要表头

方案2:处理单元格内有多个目标内容的情况

如果有些单元格里混着其他文本,比如"备注 1.2 测试 3.4",需要把里面所有带点的数字都拆分提取出来,可以用这个组合公式:

=FILTER(FLATTEN(ARRAYFORMULA(IFERROR(SPLIT(REGEXREPLACE(A:C, "[^\d\.]", " "), " ")))), REGEXMATCH(FLATTEN(ARRAYFORMULA(IFERROR(SPLIT(REGEXREPLACE(A:C, "[^\d\.]", " "), " ")))), "\d+\.\d+"))

各部分作用解释:

  • REGEXREPLACE(A:C, "[^\d\.]", " "):把所有非数字和非小数点的内容替换成空格,方便后续拆分
  • SPLIT(..., " "):把每个单元格按空格拆分成多个内容
  • FLATTEN:把拆分后的所有内容再平铺成单列
  • FILTER+REGEXMATCH:过滤掉空值和不符合「数字+点+数字」格式的内容

调整正则适配你的数据

如果你的数字格式特殊(比如带正负号、整数部分为空如.5、小数部分为空如1.),可以把正则表达式改成"[+-]?\d*\.?\d+",对应的QUERY公式就变成:

=QUERY(FLATTEN(A:C), "WHERE Col1 matches '[+-]?\d*\.?\d+'", 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:47:31