玩转Excel

您所在的位置:网站首页 pandasread_excel的返回值 玩转Excel

玩转Excel

2023-04-03 08:53| 来源: 网络整理| 查看: 265

今天,我在使用Excel办公的时候,发现一个有趣的问题。

当我在单元格1中输入“123”(文本型字符),单元格2中输入1(数值型字符),然后在单元格3中输入:=单元格1+单元格2,结果返回了124(数值型字符)!

如果大家有一点编程基础的话,应该会知道文本型字符和数值型字符是不能直接运算的,所以理论上讲“123”+1应该返回错误值#N/A。可是在Excel中,程序却直接返回了123+1的结果,也就是说Excel在进行这个运算的时候,自动把文本型字符“123”转为了数值型字符123。

不得不说,Excel的这个功能确实非常亲民,省去了用户手动进行字符类型转化的步骤,当然不好的地方就是,如果用户对字符类型不敏感,那么就会忽略掉程序帮助我们自动转化数据类型的事实,用户就很难分清楚处理的到底是文本型数据还是数值型数据。

为了更加清楚地理解Excel帮助用户自动转化数据类型,这里我们举几个例子,如下。

我们在工作表中输入两个数据,"123"-文本型(H5单元格);1-数值型(H6单元格)。然后,对两个数据做以下六种运算。

运算1:

=SUM(H5:H6),输入这个公式,我们可以发现运算结果返回1。这是因为此例中SUM函数的参数(H5:H6)表示一个单元格区域,用一个一维数组{"123";1}来表示,所以函数实际上的计算过程为=SUM({"123";1}),这个数组中包含两个元素,一个是文本型数据“123”,一个是数值型数据1,数组{"123";1}整体作为SUM函数的一个参数。

这时,SUM函数会将参数中的文本型“123”转换为0,所以运算结果为1。

运算2:

=H5+H6,我们发现运算结果返回124,运算过程为="123"+1,在Excel中,如果运算符的一侧是数字,而另一侧是字符串,Excel会自动将字符串转换为数字,并进行相加。这种转换被称为隐式类型转换。

所以,公式=H5+H6的返回值为124。

运算3:

=SUM("123",1),运算结果返回124。我们发现,此时SUM函数有两个参数,分别是“123”和1。Excel会将参数“123”和1穿入SUM函数,这时文本型“123”会转换为数字型123,然后执行123+1。

运算4:

=SUM({"123",1}),同运算1。

运算5:

=SUM(NUMBERVALUE({"123",1})),我们用NUMBERVALUE函数将数组{"123",1}做一下运算,结果为{123,1},SUM函数的计算过程为=SUM({123,1}),Excel会将数组中的每个值作为一个单独的参数传递给SUM函数,所以公式返回值为124。

运算6:

=SUM({123,1}),同运算5。

通过对比上述六种运算,我们可以发现,Excel会在特定情形下执行隐式类型转换,用户可以将文本数据和数值数据进行运算。

接下来,我们再看一下这几个例子。

这里共有六个算式,熟悉了之前讨论的隐式类型转换后,我们可以很清楚的理解B4单元格的文本型数据“123”和数字1相加可以返回124。那为什么B6和B7单元格的内容一致,B6不可以进行运算,而B7可以进行运算呢?这里,我们可以检测一下B6和B7单元格各自的数据类型。

我们发现B6为文本型数据,B7为数值型数据。所以,B6不可以直接与数值运算,B7可以与数值运算。

同理,我们检测一下B8和B9单元格的数据类型,发现,B8是文本型,B9是数值型。

这里,引申出另一个知识点,B7和B9这一类中文大写的数值型数据是怎么做到的呢?其实,Excel中自带了阿拉伯数字和中文大写、中文小写的转换功能,且转换后的数据类型依然为数值型。具体操作如下。

这篇文章简单介绍了文本型数据和数值型数据,以及Excel对两种数据类型特定情形下的转换,熟悉字符类型有助于我们深入理解Excel函数的运算逻辑。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3