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