BYCOL按列遍历数组,并把每列交给LAMBDA计算一个结果。它适合月份、部门等横向字段汇总;表头若包含在数组中,会让数值计算混入文字。

BYCOL与其他数组函数怎么选

情况处理
每列返回一个统计值使用BYCOL。
每行返回一个统计值使用BYROW。
每个元素分别处理使用MAP。
要保留每列多个结果分别计算后用VSTACK组合。

从纯数值区域开始测试

  1. 排除标题行

    数组只包含数值数据,月份名称单独保留。

  2. 定义column参数

    在LAMBDA中用SUM、MAX或COUNTIF计算当前列。

  3. 处理空列与错误值

    明确空列返回0还是空白,不用IFERROR掩盖源数据错误。

  4. 连接表头输出

    用VSTACK把月份表头和结果行组合,新增列后检查溢出。

计算12个月各自达标率

每列是一月到十二月,每行是一名员工。BYCOL对当前月统计大于等于80的数量并除以有效人数。

若某月全为空,分母为0。应返回“无数据”或空白,而不是显示100%;达标率口径需排除缺考还是按未达标处理。

BYCOL返回的数组宽度与源区域列数一致,部署前要用空列、纯文本列和错误值各做一次测试。LAMBDA逐列计算若直接套整列引用,工作簿可能明显变慢,建议限定到实际数据区;需要动态数组列汇总时,可先把原始区域转换为表格或用TAKE截取有效行。达标率还要明确空白是否进入分母,并用一列手工结果核对公式输出,避免空白被当作0而改变比例。

结果检查

  • 表头未进入计算。
  • 空列和错误值有明确结果。
  • 每列只返回一个值。
  • 抽取两个月与手算一致。

BYCOL适合把同一规则应用到横向多列。先锁定纯数据范围,再定义空列和有效人数口径,逐列结果才可比较。

逐行汇总可参考Excel BYROW函数怎么用:逐行汇总动态数组并返回一列结果;逐元素转换则使用Excel MAP函数批量计算数组:配合LAMBDA处理每一行数据