You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel中如何正确排序含字母与数字组合的颜料编号?

Excel中如何正确排序含字母与数字组合的颜料编号?

嘿,这个排序坑我之前整理物料编号的时候也踩过!Excel默认的字符串排序是逐字符比较的,所以PR9会被排在PR88后面——因为第三个字符9比8大,完全不符合咱们按数字大小排序的需求。不用头疼手动拆分列,给你几个实用的解决方案:

方法一:用辅助列提取数字(最稳妥,操作简单)

假设你的颜料编号列是A列(比如A2单元格是PR122PR 88PR9这类,带不带空格都没关系),咱们插个辅助列(比如B列),用公式自动提取编号里的数字部分:

=VALUE(MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")),LEN(A2)))

这个公式的逻辑是:先找到编号里第一个数字的位置,然后提取从这个位置开始的所有内容并转成数值——不管编号里有没有空格、有没有冒号(比如PB15:6会提取出15),都能准确抓到数字部分。

把公式往下拉填充所有行后,选中整个数据区域,按B列(辅助列)升序排序,就能得到PR9PR88PR122的正确顺序了。排序完要是觉得辅助列碍眼,直接隐藏就行,不用删掉。

方法二:用自定义公式排序(不用加辅助列)

如果不想多占一列,Office 365/Excel 2021及以上版本可以用「公式排序」:

  1. 选中需要排序的整个数据区域
  2. 点击「数据」选项卡→「排序」,弹出排序对话框
  3. 「主要关键字」选择你的颜料编号列,然后点击「排序依据」旁边的下拉框,选择「使用公式确定要排序的值」
  4. 在输入框里粘贴刚才的提取公式(把A2改成你数据区域的第一个单元格,比如A2)
  5. 「次序」选择「升序」,点击确定就能完成排序

针对多颜料组合的情况

你提到有多个颜料列,甚至第三列可能包含多个颜料编号:

  • 如果每个列都是单个编号,那给每个颜料列都配一个对应的辅助列,然后按「颜料1辅助列→颜料2辅助列→颜料3辅助列」的顺序排序就行
  • 如果某列里有多个编号(比如PR88, PY150),要是只需要按第一个编号排序,直接用上面的公式提取第一个数字就行;要是需要按所有编号排序,可能得先把单元格拆分,但这种情况不多见,优先按第一个编号排序基本能满足需求

我自己用辅助列的方法最多,毕竟操作简单,不容易出错,处理几百行数据也只要几秒就能搞定!

备注:内容来源于stack exchange,提问作者Marina Michaels

火山引擎 最新活动