微软在3月16日,也就是在刚刚过去的上周,公布在新版本Excel之中引入14个强大的函数。目前14个函数已经开展内测。如果想提前体验这14个函数,需要加入office Insider计划。国内很多用户目前还不能直接体验Excel最新的14个好用的函数。
Excel EFunction高级函数插件目前根据微软已经公开信息,已经初步实现出来这14个高级函数的功能,等待微软正式版本发布出来,再做进一步完善。利用EFunction,不仅仅365版本Excel可以提前体验了,Excel其他版本均能够体验14个函数的使用技巧。
想体验这14个函数,365版本Excel可以升级到最新版本,或者使用EFunction。
微软公开的这14个函数,对它进行分类,主要分为两大类,分为文本处理函数和数组处理函数。
文本处理函数:
- TEXTBEFORE 将某个文本之前的内容提取出来;
- TEXTAFTER 将某个文本之后的内容提取出来;
- TEXTSPLIT 对文本进行分割,结果以数组方式返回。
数组处理函数:
- 数组拼接函数:
- VSTACK 多个数组竖向堆叠;
- HSTACK 多个数组横向(水平)堆叠;
- 数组生成函数:
- TOROW 将二维数组转化为一行;
- TOCOL 将二维数组转化为一列;
- WRAPROWS 将一维数组按行转化为二维数组;
- WRAPCOLS 将一维数组按列转化为二维数组;
- 数组重构函数
- TAKE 从数组之中提取出子数组;
- DROP 从数组之中排除子数组;
- CHOOSEROWS 二维数组,挑选指定行构成新的数组;
- CHOOSECOLS二维数组,挑选指定列构成新的数组;
- EXPAND 数组扩充函数。
函数使用用法
文本截取函数:
TEXTBEFORE函数和TEXTAFTER函数使用技法基本相同,二者目标一个实现提取指定文本前的数据,一个提取指定文本后的数据,以其中一个函数作为介绍,其使用技法:
TEXTBEFORE函数有四个参数:
参数1:input_text 需要提取的文本数据,该参数为必须参数;
参数2:text_before 待查的文本,可以理解为关键词,如果参数1之中含有该关键词,则将该关键词前面的数据提取出来;
参数3:[n] 提取第几个关键词前面的数据,参数之中可能含有多个关键词,参数默认为1,表示提取第一个关键词前面的数据,数字以此类推。如果参数为负数表示从右到左,可以理解为逆向匹配。
参数4:ingore_case 是否大小写敏感,默认TRUE,表示大小写不敏感。
案例提取第二个关键词“和”前的文本数据,完整公式为:=TEXTBEFORE(D5,"和",2)。在这里,第一个和第二个参数为必须参数,第三个和第四个参数为可选参数。
文本分割函数:
TEXTSPLIT为非常好用文本分割函数,数据分割后结果以数组方式返回,函数可以指定按行分割或者按列分割。
TEXTSPLIT函数总共有5个参数:
参数1:input_text 待分割的文本,该参数为必须参数;
参数2:col_delimiter 按列分割关键词,关键词可以为多个,如果是多个关键词,可以使用数组;
参数3:row_delimiter 按行分割关键词,关键词可以为多个,如果是过个关键词,可以使用数组;
参数4:Ignore_Empty 如果分割两个关键词相邻,则分割结果会有空字符存在,该参数默认FALSE,表示不显示空字符;
参数5:pad_with 当第二个、第三个参数同时使用时,二维数组如果元素不全则通过该参数补全。默认是#N/A补全。
TEXTSPLIT第一个参数为必须参数,其他参数为可选参数。其中第二、第三个参数为限定可选参数,他们二者之中必须有一个指定,不能同时缺省。
案例以“,”将文本分成两行,使用“和”将数据分成多列。其中不足的元素,使用空字符补全。完整公式为:=ETResize(TEXTSPLIT(D5,"和",",",,""))。
数组堆叠函数:
HSTACK和VSTACK函数为一堆函数,实现数据数据横向或者纵向拼接。将小数组拼接成大数组。以VSTACK函数为例,函数参数为数组数据:
参数1:array1:数组1
参数2:array2:数组2
参数n:arrayn数组n。
VSTACK函数每个数组必须保证数组列数相同。
例如案例:使用ETFilters将日本核法国的电影数据匹配出来,日本数据在x前,法国数据在后,则完整公式为:
=ETResize(VSTACk(ETFilters(B2:J38739,E2:E38739="日本",),ETFilters(B2:J38739,E2:E38739="法国",)))
vlookup函数不能够实现数据逆向匹配(匹配结果在数据左边),使用HSTACK就可以将数据调转过来。,=VLOOKUP(K4,HSTACk(C3:C7327,B3:B7327),2,0)
数组生成函数二维转一维
TOROW或者TOCOL函数,均为将二维数组转化为一行或者一列。在excel 365历史版本之中,像unique函数或者textjoin等函数,不能够对二维数据处理。有了这两个函数后,就可以对二维数据进行处理了。
textjoin函数为例,TOCOL函数先将二维数据转为一维数据后,再利用TEXTJOIN函数实现数据拼接。
=TEXTJOIN("-",,TOCOL(C4:D9,,FALSE))
TOCOL函数参数为:
参数1:array 待转化的数组
参数2:ignore 忽略某种数据类型
参数3:scan_by_column 是否按列扫描,默认false,表示按行扫描
数组生成函数一维转二维
WRAPCOLS和WRAPROWS函数为一堆姐妹函数,该函数比较强大,可以理解为是TOCOL和TOROW的逆向函数。
使用WRAPCOLS和WRAPROWS函数可以将一维数据,还原成二维数组形式。
WRAPCOLS函数有三个参数:
参数1:vector 一维向量
参数2:wrap_count 数据分割长度
参数3:pad_with 如果数据元素不足,则以此元素填充。
数组重构函数“取”“舍”函数
excel filter函数可以实现数据多匹配,SortyBy函数,可以实现数据排序,排好序后,如果想提取数据TOPN,这时候可以使用TAKE函数或者DROP函数,对数组数据进行取舍。
完整公式为:=TAKE(ETSortBy(ETFilters(A3:H7327,B3:B7327="01班"),4,TRUE),10,)
TAKE函数有三个参数:
参数1:array 数组数据,待提取的数组;
参数2:rows 提取数据的行数,正数表示从上到下,如果是负数,表示提取尾行数据;
参数3:columns,提取数据的行数,正数表示从左到右,负数表示提取尾列数据。
数组重构之挑三拣四函数
CHOOSEROWS 和CHOOSECOLS为挑三拣四函数,将二维数组指定行或者指定列数据提取出来,作为一个新数组。
还以VLOOKUP函数不能实现逆向匹配为例进行介绍。通过CHOOSECOLS函数,也能实现HSTACK函数相同效果。完整公式为:=VLOOKUP(K4,CHOOSECOLUMNS(B3:H7327,2,1),2,0)
CHOOSECOLS函数参数:
参数1:array 数组数据
参数2:column_num1提取的第一个列,为整数,大小不应该超过数组array的列数;
参数n:column_numn 提取的第n列,为整数,大小不应该超过数组array的列数;
数据扩充函数
EXPAND函数,对数组数据进行扩充,从目前微软公布的案例来说,该函数暂且没有找到很好的应用场景,目前想到的一个场景就是,VSTACK和HSTACK函数要求行或者列保持一致,为了保证能够正常拼接,可以使用expand函数,将数据扩充到统一大小。