elementui 表格英文加数字排序_如何解决excel排序不正常问题

日常学习工作后,本着人会出错,电脑不容易出错的想法,用excel排序后,把数据交给老板,被老板劈头盖脸的批评:连从大往小排序这么简单的活都干不好?!是不是觉得特冤屈,excel坑我,微软不靠谱,^_^。其实电脑只是按设定的规则办事,我们对电脑以及excel不熟悉,自己弄了一堆乱糟糟的数据给它排序,人肉眼看着一样的数据,在它的火眼金睛下其实有区别。


一、问题

昨天家里领导在对学生成绩进行排序时,明明看着excel表格里是一列数字,排序时却不老老实实从大往小站队,为了讲清楚这个问题,我专门复盘了个样例(图1),点降序排序后的结果。

5dabeed8df24398d6a4cd5c5f550cd6b.png图1上半截排一个序列,下半截又重排一个顺序 aaad0ac642c3eb7f94bb1db2f92cb647.png;中间还有个“25”既不随上半截排序,也不随着下半截排序,个性太强 0513a47593d337f05f54abac9213358c.png

二、解决方法

先说解决方法,后面再分析原因。在要排序的这列数据临近列中,点选同一行的一个单元格(例如D1),输入行名称乘以1:“=C1*1”,按回车键,马上显示算式的结果(图2)

7eeced5a26ab4f0a5003c100638fd68a.png图2鼠标点选D1单元格,出现一个右下角带小方点的方框,鼠标点住小方块往下(如果在中间行,也可以往上拖动,或者往上拖动一次往下再拖动一次)拖动,直到最后一行,D列变成了乘法运算后的结果,看起来和C列一样的数字(图3)。

6e8b68025f4273895c89ee7af2fa081e.png

图3现在再排序试试看? ec904c5301f8aafbaa0f08da856b1be4.png图4是不是都规矩啦?

第二种方法:点选图1中上方方框中每一个左上角带小三角形的数字所在的单元格,会显示一个黄色的叹号,点叹号,在弹出的窗口中点选“转换为数字”。把所有带小三角的都改一遍,再排序就正常了。如果带小三角的多,就太繁琐和浪费时间了。

三、原因

是不是感觉很神奇?那这什么道理呢?下面来分析。我们还看图1,为了方便我复制下来 5dabeed8df24398d6a4cd5c5f550cd6b.png图1直观的看:上半截的数字靠左对齐,下半截的靠右对齐。我保证,都是直接输入的没调左右对齐之类的。上部方框里的数字所在单元格右上角是不是多个小三角?不妨点选看看。 cdbc8244099ff19fc2ceb5c81fa4737b.png图5点选后,发现旁边多了个黄色叹号,点击,弹出图5中提示框,提示这个单元格里的“5”是以文本形式存储的数字(有点拗口哈,意思其实就是看着像数字,其实它是文本)。也就是说它是文本类型的,不是数字类型的。 图1中上边框里的“1”和下边框里面的“1”,我们肉眼看起来一样,但对于excel来说,它们不一样,类型不同,要分别排序。如果学过点编程知识,就更容易理解(数字类型:2+3=5,文本类型:“2”+“3”=“23”)。 你有么有想:在“单元格格式”里面把图1上面方框里的文本型数字“分类”属性改成常规或者数字,或者倒过来把图1下面方框里面的数字的“分类”改成文本就可以了呢?答案是:不行。个人感觉这就是个bug,但不知道为何excel改版这么多次仍然不改,难道有什么我们不了解的特殊原因?

那么为何用进行了乘法运算后,2个不同类型的数字就一致了呢?这就是excel运算的规则:强制类型转换,程序设计语言里面也涉及强制类型转换(支持强制转换的类型才可以成功转换,不能把一个汉字直接转换成数字肯定不行)。看来学点简单的编程知识没啥坏处!

1f8f21c7e4d5e7eb97c4a07424f59afa.png

图5 汉字“五”乘以2,结果为无效值

不需要注意,但多了解些也没啥坏处的:如果你用文本型数字做乘法,结果仍然是文本型数字,往上往下拉小方点套用公式后其他行计算结果也都是文本型数字(即使下方的数字也变成了文本型数字)。若用下方数字直接做乘法运算,结果是数字,往上往下拉小方点套用公式后其他行计算结果也都是数字(即使上方的文本型数字也变成了数字)。

aec8bb6ccf13931c2e9ac4294e69d7dc.png

图6 左边结果是数字,右边结果是文本型数字

稍等,是不是还漏了一个问题?我们再看下图1中间那个“ 25”,为啥既不和上面方框内文本类型数字一起排序,也不和下面数字一起排序呢?仔细看,是不是前面多了个空格(“25”和“ 25”是不一样的),问题就出在这里。在乘法运算时自动会把那个空格去掉,所以乘法运算后没影响最终结果。

你是否想知道为何会出现文本型数字和数字呢?我是如何弄出图1这种情况呢?了解excel中几个情况就明白了。

(1)新建一个excel表格后,单元格默认是“常规”类型,直接输入数字,显示为常规类型,但实质上是数字类型。直接输入文本,例如英文字母或者汉字之类的,显示为常规类型,但实质上自动识别为文本类型。区别在于数字类型自动靠右对齐,文本类型自动靠左对齐。

c8a68b4dd580446a0f1f1cfa5108fda9.png

图7

(2)在表格中先输入一些数字后,再设置部分数字的单元格属性为“文本”,看起来是文本,但排序时其实是按数字类型排序的,可正常按看到的大小顺序排列。

877a9a6da8514010d6527568ae7a4b47.png

图8

(3)把(2)颠倒下顺序,先选中一些单元格,设置格式为“文本”,后输入数字,才会真的变成文本类型存储的数字(如图1所示),排序时候会打按两种类型分别排序,需要处理后才可正常排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值