大数跨境

为什么说 SCAN 改变了 Excel 几十年的使用习惯

为什么说 SCAN 改变了 Excel 几十年的使用习惯 浅谈出口账务和excel函数
2026-10-06
5

SCAN 不只是一个新函数,它代表的是 Excel 计算范式的根本转变。下面把这件事拆透。


一、旧范式的本质:位置思维 + 多米诺骨牌

老方法的核心逻辑是:

   
      
    
          B3 = IF(ISNUMBER(A3), B2, A3)    
  

这个公式能成立,依赖三个隐含假设:

假设 含义 脆弱点B2 存在 上一行必须已经有结果 第一行必须手动打底B2 是"上一行" 相对引用绑定物理位置 插入/删除行会断链填充柄拖到位 公式必须覆盖到每一行 不知道数据多少行,只能预拖几千行

这就是位置思维:信息靠"隔壁格子"传递,像多米诺骨牌,每一块推倒下一块。

问题在于:

· 公式链一旦中间断掉,后面全错。· 数据行数变化,必须重新拖。· 空行残留 0 或 #N/A,还要套 IFERROR。· 逻辑藏在"引用关系"里,而不是藏在"规则"里。


二、SCAN 的本质:状态思维 + 累积器

   
      
    
          =SCAN(A2, A2:A10, LAMBDA(x, y, IF(ISNUMBER(y), x, y)))    
  

这里发生了三件事:

  1.    
  2. x 不是单元格,是一个抽象状态

老方法里 B2 是"上一行的结果"。SCAN 里 x 是"当前所处的科目"。

· x 没有物理地址。· x 不依赖行号。· x 只在你定义的规则里被更新。

位置消失了,状态留下了。

  1.    
  2. 规则由 LAMBDA 声明,而不是由引用关系暗示
   
      
    
          LAMBDA(x, y, IF(ISNUMBER(y), x, y))    
  

读作:

遇到数字,状态不变;遇到文本,状态切换为当前值。

这是声明式逻辑,不是"B3 看 B2"这种空间布局。

  1.    
  2. 输出形状由数组决定,不由填充柄决定

A2:A10 有 9 行,SCAN 就吐 9 行。数据加到 A20,改成 A2:A20,结果自动 19 行。不需要预拖,不需要猜行数,不需要清空残留。


三、为什么这是"几十年使用习惯"的改变

改变一:从"单元格海洋"到"数组整体"

旧心智模型 新心智模型A1、B2、C3 是独立格子 一整列是一个数组公式在格子间跳转 公式对整组数据计算想的是"这一格等于哪一格" 想的是"这组数据经过什么规则变成另一组"

这不仅是 SCAN。FILTER、SORT、UNIQUE、XLOOKUP、SEQUENCE、MAP、REDUCE、BYROW、BYCOL、GROUPBY……一整套动态数组函数都在做同一件事:

一个公式,吐出一片结果。

改变二:从"被动填充"到"主动溢出"

老时代做模板:

· 先写 5000 行公式备用。· 文件又大又卡。· 空行出 0 或错误值。· 还要 IFERROR 包一层。

动态数组时代:

· 写一个公式。· 数据多少行,结果溢出多少行。· 数据删了,溢出范围自动收缩。· 数据加了,自动扩展。

模板从"预铺铁轨"变成"水到渠成"。

改变三:LAMBDA 让 Excel 第一次拥有"编程能力"

这是最深远的一步。

SCAN、REDUCE、MAP、BYROW、BYCOL 的第三个参数都是 LAMBDA。LAMBDA 的本质是:

把"遇到什么情况怎么处理"写成自定义规则,像写代码一样。

这意味着 Excel 不再只是"会算数的表格",而是:

· 可以定义自己的分组逻辑。· 可以定义自己的累积规则。· 可以定义自己的清洗流程。· 可以把过去要写 VBA 或 Power Query 的事,用一个公式表达。

Excel 从"表格软件"变成了"轻量级数据处理语言"。


四、一张表看清两个时代的区别

维度 旧时代(位置思维) 新时代(状态思维)信息载体 相邻单元格 累积器 x逻辑藏在哪里 引用关系里 LAMBDA 规则里行数变化 手动重拖 自动溢出插入/删除行 公式链断裂 不受影响空行处理 残留 0 / 错误值 自动对齐数组形状公式数量 每行一个 整列一个心智模型 多米诺骨牌 状态机扩展能力 只能组合内置函数 可自定义逻辑


五、用一句话总结

老 Excel 教你怎么"摆格子",SCAN 教你怎么"描述过程"。

· 老方法:B3 看 B2,B4 看 B3,靠物理位置传递信息。· SCAN:维护一个抽象状态,遇到金额不变,遇到科目切换,输出由数组形状自动决定。

这不是"多了一个函数",而是:

Excel 从"单元格计算器"进化成了"数组处理器 + 轻量级编程环境"。

SCAN 之所以重要,是因为它把"状态"这个概念第一次原生地带进了 Excel 公式层。过去你要么用辅助列,要么用 VBA 变量,要么用 Power Query 的累积列。现在,一个公式,一个 LAMBDA,就能表达完整的"扫描—判断—更新—输出"过程。

这就是它改变几十年使用习惯的根本原因。


【声明】内容源于网络
0
0
浅谈出口账务和excel函数
1234
内容 1583
粉丝 0
浅谈出口账务和excel函数 1234
总阅读30.0k
粉丝0
内容1.6k