解决像DB1.DBW20这样的排序问题

发布于 2024-06-29  243 次阅读


采取将其中数字提取出来作为辅助列的方法

用公式=LookUP(9E+307,—MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890),ROW($2:$1025))))

这是将A1中的数提出来的万能公式,但像上面DB1.DBW20这样的只能提取出1(一个单元格里存在两处以上的数值,只能取出第一个)

  • FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)&1234567890 是为了防止某些数字不存在,FIND结果返回错误值.
  • MIN(FIND) 是取得数字第一次出现的位置
  • MID(A1,第一次出现的位置,ROW($2,$1025)),从首个数字,向右分别提取,2个数值,3个数值….1025个数值
  • —的作用是将MID的结果(文本数值)转化为数值模式
  • LookUP取得最后结果.它会自动忽略掉—产生的错误值#VALUE,取升序排列数值的最接近9E+307的值,即最大值.

上面这样像DB1.DBW20只能提取出1,排序无法完成,还需要把20提出来,需要对上面的函数稍改一下

查FIND函数用法,发现find(find_text,within_text,start_num)其中start_num表示从第几个字符开始查找,默认为1,所以,对DB1.DBW20来说,只需要让其从第6个字符开始就能查出20

这样分别提出1,20作为两列,1为主列,20为辅列,完成排序


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。