如何在Google Sheets中提取斜杠后数字并求最大值与平均值
在Google Sheets中提取斜杠后数字并计算最大值/平均值(正则多值遍历实现)
核心思路
通过正则表达式批量提取所有单元格中斜杠(/)后的数字,将这些数字整理为一维数组后,直接用MAX和AVERAGE函数计算结果。
1. 提取所有斜杠后的数字集合
假设你的数据存储在A1:A10区域,使用以下公式可以提取所有符合要求的数字:
=FLATTEN(SPLIT(TEXTJOIN(" ", TRUE, REGEXREPLACE(A1:A10, "[^/]*?/(\d+)", "$1 ")), " "))
公式拆解:
REGEXREPLACE(A1:A10, "[^/]*?/(\d+)", "$1 "):遍历每个单元格,匹配任意非斜杠字符+斜杠+数字的片段,只保留斜杠后的数字并添加空格分隔TEXTJOIN(" ", TRUE, ...):将所有单元格处理后的内容拼接成一个长字符串,自动忽略空单元格SPLIT(..., " "):按空格拆分字符串,得到分散的数字文本FLATTEN(...):将拆分后的多维数组转换为一维数组,方便后续计算
2. 计算最大值
将提取数组直接传入MAX函数即可:
=MAX(FLATTEN(SPLIT(TEXTJOIN(" ", TRUE, REGEXREPLACE(A1:A10, "[^/]*?/(\d+)", "$1 ")), " ")))
如果提取的数字以文本格式存在,MAX会自动转换为数值计算;若存在非数字干扰项,可嵌套VALUE函数强制转数值:
=MAX(VALUE(FLATTEN(SPLIT(TEXTJOIN(" ", TRUE, REGEXREPLACE(A1:A10, "[^/]*?/(\d+)", "$1 ")), " "))))
3. 计算平均值
同理,使用AVERAGE函数:
=AVERAGE(FLATTEN(SPLIT(TEXTJOIN(" ", TRUE, REGEXREPLACE(A1:A10, "[^/]*?/(\d+)", "$1 ")), " ")))
注意事项
- 若单元格内存在多个斜杠(如
a/12/b/34),上述正则会提取所有斜杠后的数字(示例中为12和34) - 如果斜杠后可能出现非数字内容,正则
/(\d+)确保只捕获连续数字部分,避免无效内容混入 - 调整公式中的数据区域(
A1:A10)为你实际使用的范围即可
内容的提问来源于stack exchange,提问作者katherine
相关产品推荐
相关产品推荐

