ARTICLE · 1319668
WPS冷门函数EXPAND:一个函数搞定批量填充,还有个“照相机”玩法
有网友问了这样一道问题:表格里有一小块数据,想快速把它扩充成一个更大的区域,空出来的地方自动填上内容,有没有什么省事的办法?
说实话,这个问题我第一反应是复制粘贴,但手动操作多了确实烦。后来我想到了一个平时用得很少的函数——EXPAND。今天就借这道题,把这个冷门函数好好聊一聊。
先说明一点:EXPAND 是 WPS 的新函数,需要较新版本的 WPS 才能使用,老版本打开会提示名称无效。
一、EXPAND 是个什么函数
EXPAND,音标 [ɪkˈspænd],常见释义就是“扩大”“扩展”“展开”。
它的作用一句话就能说清:把目标数据按指定的行列数,扩展到更大的维度。要注意,扩展后的区域只能大于或等于原区域,不能缩小。
它有 4 个参数,其中第 3、第 4 参数可选:
参数1:要扩展的引用或常量数据、数组,不能省略;
参数2:扩展的行数,省略则不在行方向扩展;
参数3:扩展的列数,省略则不在列方向扩展;
参数4:用自定义数据填充扩展后出现的空白(默认是 #N/A),不能是数组。
平时用得少,属于冷门函数,但上手之后会发现它其实挺好玩。
二、基本用法:三种扩展方向

对一个单元格数据,它可以按行扩展:=EXPAND(A2,10);
可以按列扩展:=EXPAND(A2,,10);
也可以同时按行列扩展:=EXPAND(A2,10,10)。
扩展出来的空位默认全是 #N/A,看着不美观,这时候第 4 参数就派上用场了,比如 =EXPAND(A2,10,10,"果果"),空位全部填成“果果”。
第 4 参数如果填文本,要放在英文双引号里;如果是数字,加不加双引号都可以。
三、几个容易踩的坑

第一个坑:单列数据只能在列方向扩展,不能在行方向扩展。比如 =EXPAND(A2:A19,2) 会直接报错 #VALUE!,必须把第 2 参数省略掉,写成 =EXPAND(A2:A19,,10) 才行。

第二个坑:单行数据正好相反,可以在列方向扩展,比如 =EXPAND(B1:I1,10),但实际用途不大,单行数据主要还是拿来按行扩展。

第三个坑:扩展多行多列数据时,第 2 参数要大于等于目标数据的总行数,第 3 参数要大于等于总列数,只要有一个不够,就会报错。比如 =EXPAND(B4:D13,1,1) 就会返回 #VALUE!。
四、三个实用案例
案例 1:简单的批量填充

把一个单元格扩展成 10 行 10 列,空位填固定文字:=EXPAND(B4,10,10,"wps")。
也可以引用单元格来填充:=EXPAND(B4,10,10,B4),效果是把 B4 的内容铺满整个区域。
案例 2:有趣的镜面反射

这是我觉得最好玩的一个玩法。对一块多行多列的数据,把第 2、3、4 参数全省略:=EXPAND(B4:E18,,),扩展后的区域会像照相机拍照一样,把原数据原样“照”一遍,分毫不差。
单独看没什么用,但配合其他函数做数据处理时,这种原样展开的特性偶尔能派上奇用。
案例 3:妙用 IFNA 实现批量重复填充

前面说过,扩展出来的空位默认填 #N/A,而 IFNA 函数专门用来把 #N/A 替换成指定内容。两个函数一嵌套:=IFNA(EXPAND(A2:A17,,10),A2:A17)。
思路很巧:EXPAND 把姓名在列方向扩展出 10 列,扩展产生的 #N/A 全部被 IFNA 用原数据 A2:A17 替换,结果就是每个姓名横向重复填充了 10 次。
五、公式汇总
六、两句题外话
EXPAND 平时出场率确实不高,但它和 IFNA 的这一手配合,解决“批量重复填充”这类问题时特别顺手。新函数大家不用急着全记住,遇到具体场景能想起来有这么个工具,就够用了。
文中所有公式我都在课件里逐一核对过,可以直接复制到 WPS 里试。需要这节课件的老师,后台回复“EXPAND”就可以拿到。
我是墨云轩,一个爱折腾表格的老师。文章如有不当之处,欢迎留言交流,先谢过各位大佬。















































































