理解Excel中的数据类型(三)
接上文:
数组类型
TYPE函数返回64时,表示数据为数组类型。
很多人会认为如果单元格中的一个公式返回数组,那么TYPE函数就可以知道该单元格的类型为数组。
这是错误的。
TYPE函数只会识别单元格中数据的类型。如果单元格中含有公式,TYPE函数返回的是公式计算结果的类型。
实际上,数组类型的数据是作为公式的参数使用的。
比如,公式:
∙
=TYPE({1,2,3})
其中,用常量数组{1,2,3}作为参数,返回结果为64。
而下面的公式:
∙
=TYPE(FILTER(B3:B7,B3:B7>2))
使用FILTER函数作为参数。而FILTER函数返回结果是个数组,所以这个公式返回结果为64。
在“新”Excel中(指支持动态数组的Excel),基本上大部分函数都自动支持数组参数了,所以数组类型变得非常重要了。要详细了解数组,请阅读:
理解Excel中的数组(一)
理解Excel中的数组(二)
理解Excel中的数组(三)
复合类型
如果TYPE函数返回128,表示数据为复合类型。这是一种新的数据类型,是Excel中除了动态数组外的另外一大进步。
复合类型的好处就是可以在一个单元格内存储很多个相关信息。例如:
E列就是复合类型。在E列显示的是产品的SKU,但是通过点击单元格前面的按钮,可以显示隐藏在背后的详细信息,比如产品的类别,容量,包装等。
通过点击表格右侧的“添加列”按钮,还可以随意添加想要的信息:
对复合类型的引用也非常简单:
关于如何创建和使用自己的复合类型,请参见:
Excel的新功能:定制数据类型。究竟有什么用处?
数据类型的最佳实践
在Excel中,数组是在公式中才用得到的类型。复合类型也有它特别的应用场景。但是,文本,数值,逻辑值这3种数据类型是我们最常用的。关于它们,我这里有一个建议。
我们一开始就说过,Excel是“弱类型”的,这就意味着在Excel中使用数据类型是非常自由的。同样的一列当中,不管列名称是什么,你可以在这里列当中包含任意类型的数据:
这些数据在输入时可能都是有道理的,比如当时不知道她的姓名,就用手机号代替,或者邀
请的序列号,或者生日等。但是这就为后续的数据处理带来了隐患。比如在Power Query中,尽管也支持一种叫做“Any”的数据类型,但是总体而言,Power Query还是强烈建议每一列都采用相同的类型的。实际上很多数据应用软件都有这样的要求(或者隐含要求)。
上图中的数据还是很容易看出来问题的。但是有的时候你的数据没有这么明显,可能前面几千行都是正常的姓名,但是后面却有一些日期,数字等。这样在后面你使用函数进行处理,或者使用Power Query整合数据都会遇到各种问题。所以,要尽量避免这种情况的出现,尽可能在一列中使用一种数据类型,否则,后续的数据清洗工作会非常繁重。
有的时候,数据类型的不一致并不一定是你手工输入造成的。还有一种更加隐蔽的情形:
在数量列中,我们通过VLOOKUP函数查相关的数量,对于那些查不到的内容,我们通过IFERROR函数返回一个空:""。
这是一个相当正常的操作,但是这样返回的空:"",实际上导致C5单元格就是一个文本类型,如果把""改成0就会好得多。
Excel+Power Query+Power Pivot+Power BI
Power Excel 知识库 按照以下方式进入知识库学习Excel函数 底部菜单:知识库->Excel函数
excel字符串是什么自定义函数 底部菜单:知识库->自定义函数
Excel如何做 底部菜单:知识库->Excel如何做
面授培训 底部菜单:培训学习->面授培训
也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论