Excel公式实现提取单元格内最值并以-分隔显示
Excel提取分隔数值的最小/最大值并格式化展示方法
针对单元格中以「|」(带前后空格)分隔的数值串(如「130 | 140 | 150」),以下是几种可行的实现方法:
方法一:动态数组公式法(Excel 365/2021及以后)
直接用单公式完成拆分、取值、格式化:
=MIN(--TEXTSPLIT(A1," | "))&" - "&MAX(--TEXTSPLIT(A1," | "))
- 步骤说明:
TEXTSPLIT(A1," | "):将A1内容按「空格+|+空格」拆分为文本数组{"130","140","150"}--:把文本型数值转换为数值型,确保MIN/MAX能正确计算MIN()/MAX():分别提取数组中的最小、最大值&" - "&:按要求格式拼接结果
方法二:Power Query批量处理法(Excel 2016及以后)
适合批量处理多单元格数据,步骤清晰:
- 选中目标数据列,点击「数据」选项卡 →「从表格/区域」(若数据不是表格,会提示转换为表格,按需勾选「我的表格有标题」)
- 在Power Query编辑器中,选中目标列 →「转换」选项卡 →「拆分列」→「按分隔符」,选择「自定义」分隔符为
|,拆分方式选「拆分为行」 - 选中拆分后的数值列,点击列标题旁的类型图标,转换为「数值」类型
- 点击「转换」选项卡 →「分组依据」:
- 若为单列表,分组依据选「无」;若有多列,选择对应分组列
- 添加两个聚合列:名称「最小值」,操作「最小值」;名称「最大值」,操作「最大值」
- 点击「添加列」选项卡 →「自定义列」,输入公式:
= [最小值] & " - " & [最大值] - 点击「关闭并上载」,将结果导出到Excel工作表
方法三:辅助列法(兼容旧版Excel)
无动态数组功能时,用辅助列分步实现:
- 辅助列B1:替换分隔符为逗号,便于后续处理
=SUBSTITUTE(A1," | ",",") - 辅助列C1(取最小值,需按Ctrl+Shift+Enter输入数组公式):
=MIN(VALUE(MID(SUBSTITUTE(A1," | ",REPT(" ",99)),(ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," | ",""))+1))-1)*99+1,99))) - 辅助列D1(取最大值,同样按Ctrl+Shift+Enter输入):
=MAX(VALUE(MID(SUBSTITUTE(A1," | ",REPT(" ",99)),(ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," | ",""))+1))-1)*99+1,99))) - 结果列E1:拼接成目标格式
=C1&" - "&D1
内容的提问来源于stack exchange,提问作者Mischa Morf
相关产品推荐
相关产品推荐

