





| 自动去重 | =UNIQUE(A1:A5) | 返回一个没有重复值的列表 |
| 条件筛选 | =FILTER(A1:B10, B1:B10>100) | 返回所有数值大于 100 的行 |
| 水平堆叠 | =HSTACK(A1:A3, B1:B3) | 将两列数据左右拼在一起 |



' 示例:将输入的数组内所有数值翻倍Function DoubleSpill(ByVal val As Variant) As VariantDim result As VariantDim i As Long, j As Long' 如果是 Range 对象,先转为 Variant 数组result = val' 处理多维数组(Spill 的本质)On Error Resume NextFor i = LBound(result, 1) To UBound(result, 1)For j = LBound(result, 2) To UBound(result, 2)result(i, j) = result(i, j) * 2NextNextOn Error GoTo 0' 将处理后的数组传回,Excel 会自动执行溢出显示DoubleSpill = resultEnd Function
' 传入任一属于 Spill 区域的单元格,返回整个区域的地址Function CheckSpillRange(ByVal r As Range) As String' HasSpill:判断该格是否属于某个溢出范围If r.HasSpill Then' SpillParent.SpillingToRange:直接抓取整块「流淌」出来的区域CheckSpillRange = r.SpillParent.SpillingToRange.AddressElseCheckSpillRange = "非溢出区域"End IfEnd Function
很多同学兴致冲冲地输入 =UNIQUE(A1:A10),结果 Excel 却冷冷地回了一句 #NAME?。
原因很简单:你的 Excel 版本该升級了!
Spill 溢出功能和动态阵列函数(UNIQUE, FILTER, SORT 等)是 Excel 的「新纪元」产物,仅支援以下版本:
Microsoft 365(订阅版,始終最新)
Excel 2021 或更高版本(买断版)
Excel 网页版(如不想升级电脑版,可以传文件到 OneDrive 用网页版打开,照样能用!)