BYROW会把指定数组的每一行分别传给LAMBDA,再把各行的结果垂直排列。它适合不增加辅助列的逐行汇总;若每行要返回多个字段,单个BYROW无法直接生成不规则子数组。

BYROW与其他函数怎么分工

情况处理
每行只返回一个合计或状态使用BYROW。
每列分别计算改用BYCOL。
每个元素独立转换使用MAP。
需要为每行返回多列明细先计算各列或使用HSTACK组合独立结果。

写出可验证的逐行公式

  1. 准备小数组

    先用3行4列数据手算每行结果,排除表头和总计行。

  2. 定义row参数

    LAMBDA只接收当前行数组,内部用SUM、MAX或COUNT等函数计算一个标量。

  3. 处理空白与错误

    明确空行返回空白还是0,错误值是否应暴露,不能统一IFERROR后丢失原因。

  4. 扩大正式范围

    使用表格或动态区域,确认新增行后结果自动溢出且没有内容阻挡。

判断每名员工四项指标是否达标

四列是质量、时效、响应和合规分数,BYROW对每行取MIN,最低分不小于80则返回“达标”,否则返回“需复核”。

如果还要返回最低分和对应指标名称,应分别生成最低分列与名称列后HSTACK,不能让单次BYROW在某些行返回一个值、另一些行返回两个值。

动态数组行汇总还要测试隐藏列和错误值。BYROW读取的是实际数组,不会因列在界面隐藏而自动忽略;需要排除字段时应先用CHOOSECOLS选择范围,并把选择规则写入公式说明。

交付前检查

  • 空行和单行样本结果正确。
  • LAMBDA每行只返回一个值。
  • 新增记录不会覆盖溢出区域。
  • 计算结果与辅助列手算一致。

BYROW把“复制一条公式到每一行”改成一个数组计算。先保证每行规则只产生一个结果,再处理空白和动态范围,公式会更稳定。

逐元素转换可参考Excel MAP函数批量计算数组:配合LAMBDA处理每一行数据;需要根据行列位置新建矩阵时则使用Excel MAKEARRAY函数怎么用:按行列位置生成动态数组

BYCOL按列遍历数组,并把每列交给LAMBDA计算一个结果。遇到这一具体需求时,可继续查看Excel BYCOL函数怎么用:逐列计算最大值、合计和达标率