跟我一起,穿越时间!
回顾一下,在连载1和连载2的内容里,我们复习了Excel中最基本的数据类型,四大类型(文本字符型、数值型、逻辑型、错误值)的数据是Excel应用处理的基础,但是我们只孤立的知道他们的类型还不够,知道距离灵活运用还尚有较大距离,马克思主义哲学唯物辩证法告诉我们,联系具有普遍性、客观性和多样性,一个事物内部各个要素是相互联系的,那么Excel中的各种数据类型之间究竟有什么联系?

今天,我们走到Excel升级之路的连载3:数据类型检测与相互转换技巧
一、数据类型检测——实践是检验真理的唯一标准
首先考虑一个问题,对于已经存在于Excel单元格中的数据,我们如何确认其数据类型?
有人也许会说直接观察,凭借经验进行判断,但是这样做并不能够100%确定,而且函数公式运行过程中的一些数据也不会最终出现在单元格里。
不能确定意味着会出现差错,而关键时刻不出差错才可以扭转乾坤,东汉·班固《汉书·赵充国传》中的实例告诉我们:“百闻不如一见,兵难隃度,臣愿驰至金城,图上方略。”“百闻不如一见,百见不如一干”,通过实践进行检验才是不二法门。
Excel中提供了丰富的内置检测函数,而且非常方便使用,他们统称为is函数,我们通过is函数问Excel问题,Excel会以是(TRUE)或否(FALSE)来回答我们。
是否是文本字符型
如果结果为TRUE,则检测内容是文本字符型数据。

是否不是文本字符型
空单元格
答案:是,不是文本,Excel返回TRUE

是否是数值型
如果结果为TRUE,则检测内容是数值型数据。
我们再次以日期举个例,检测一下,可以看到日期型数字就是数值型数据。

在数值型数据中,偶数和奇数也是可以进行检验的,他们使用的就是is和英语中偶数even、奇数odd的单词组合。
检测是否是奇数:isodd函数
检测是否是偶数:iseven函数,不要忘记0是偶数。

是否是逻辑型
如果结果为TRUE,则检测内容是逻辑型数据。

错误值空单元格
既然Excel在遇到错误时会返回不同的错误值,那就说明这些错误值也是可以区分的。
Excel中提供了iserror函数、isna函数、iserr函数来进行检验,他们稍有差别,这里不展开,通过Excel的提示可以进行选择。

另外,Excel中还有一个检测是否为空单元格的函数:isblank函数。
空单元格

5、其他
即
当然可以!
最后还有两个神级检测函数:type函数和error.type函数,他们可以以特定的数值返回检测结果,特定的数值就代表要检测的数据的数据类型,这是在函数公式中的高级用法。

例如用type函数检测一下“穿越时间”,其返回值是2,对照下面的编码表,我们可知Excel告诉我们“穿越时间”是文本字符型数据。


二、数据类型转换技巧
Excel中的数据类型并不是孤立的,彼此之间可以相互转换。
如何将一种类型的数据转换为另一种类型的数据呢?
通过可视化的“设置单元格格式”是最简单的方法,但是,如果涉及到Excel函数、公式甚至编程应用,“设置单元格格式”就不是最好的方案了。
的
接下来,我们从输入文本型数据开始,按照文本型数据、数值型数据、逻辑型数据依次展开,看一看上文讲到的三种数据类型(文本型、数值型、逻辑型)可能出现的转换情况和技巧。
'

文本型==》数值型
文本
(1)符号法:
- -

看到了没有,B1单元格中的770就变成了靠右对齐的数字型。
我们可以通过刚才学习的isnumber函数检测一下B1中的770是否为数值型,
结果为TRUE,确认无误。

(*1)
我们将文本型的770乘以1,也可以将它转换为数值型。

很奇特是不是?
/1^1+0-0
但是如果你想尝试加号法,例如=++A1 或 =+A1 则是不可以的,这样的结果仍然为文本型;
那么继续,
为什么最初的减号法 =- -A1可以,
为什么要用两个减号?
其实用一个减号也可以实现文本型到数值型的转换,不过这样值就变了,成了相反数。(=-A1,可以实现将A1中文本型的770转换为数值型的-770)
负负得正
同理,四个减号也是可以的。
偶数个减号都是可以的。
由此,上面更多的求1次幂^1,加0 ,减0就可以理解了。
都

(2)函数法
我们可以通过n函数或者value函数,将文本型数字转换为数值型。
这里不需要特殊的介绍,直接使用函数即可。

数值型==》文本型
(1)符号法:
'
&""
通过在单元格后追加&"" 代码,即可将数值型数字转换为文本型数字。
&
""
=A1&""

'

(2)函数法:
我们可以使用text函数将数值型数字转换为文本型数字。
按照给定的格式

数值型==》逻辑型
数值型的数字也是可以转换为逻辑型数据的,这里需要借助一下if函数
=IF(A1,TRUE)

任何非0的数值型数字通过if函数都可以返回逻辑型TRUE
数值型数字0通过if函数可以返回逻辑型FALSE
这是一种比较巧妙的做法。

逻辑型==》文本型
&""

逻辑型==》数值型
(1)符号法
与上面文本型数字转换为数值型类似,逻辑值执行加减乘除的任意运算也可转换为数值型。
*1 /1 +0 -0 两个负号- - 乘幂^1都可以实现:TRUE会变成1,FALSE会变成0

多个逻辑型数据本身可以直接执行运算(此时,TRUE相当于1,FALSE相当于0),结果也为数值型;

注意:在某些函数中,不支持逻辑值直接执行运算,原因是有些函数在不同的情况下会忽略非数值数据,必须先行转换为数值型之后才能在函数中进行运算。
下面是一个涉及SUM函数的实例,A1、A2中都是逻辑型数据TRUE,琢磨一下都是相加求和,运算的结果为什么有时是2有时是0?


解释一下:
Sum函数会忽略单元格引用中的逻辑型数值和文本型数值,在这里忽略的意思可以认为sum把逻辑型数值和文本型数值当不存在来看待。
但是当我们把逻辑型数值和文本型数值直接输入sum函数中,当做sum函数的参数时,sum则不会忽略他们。
这个点以后还会再提及。
(2)函数法
直接使用上面提到的n函数也可以将逻辑型的数据转换为数值型。

综上,在写函数公式的时候,应该使用什么类型的数据就要写上什么类型的数据,有些时候,虽然数据类型不对,但似乎Excel也给出来正确的结果,这是函数底层的容错性起了作用,不过可想而知,那样的公式是多么混乱,多么容易让人混淆,看不明白是什么意思。
好了,以上就是连载3的全部内容,没有看过前面连载的可以点击头像或链接跳转:
更多精彩,敬请关注。
(原创连载,个人观点保留,禁止任何未经授权的非本人账号复制文章到其他平台发布)