在 Excel 的函数世界里,REDUCE 函数犹如一颗璀璨的明珠,与 LAMBDA 函数巧妙配合,能实现诸多复杂而强大的数据处理功能。今天,就让我们一同深入学习 REDUCE 函数的使用方法。

一、REDUCE 函数解析

(一)函数定义

REDUCE 函数的核心作用是通过将 LAMBDA 函数应用于数组中的每个值,并在累加器中返回总值,从而将数组简化为一个累积值。

(二)语法结构

其语法为:=REDUCE ([initial_value], array, lambda (x,y, 计算表达式) )。

  • 第一参数:initial_value(初始值),它是计算的起始点,为整个计算过程提供一个初始基础值。
  • 第二参数:array(要循环的数组),这是需要进行遍历和处理的数据集合。
  • 第三参数:lambda(一个能接受 2 个参数的函数),在这个函数中,“x” 通常代表累积值(初始值或上一次计算的结果),“y” 代表数组中当前正在处理的值,“计算表达式” 则定义了如何根据 “x” 和 “y” 进行计算。

虽然理论上的介绍可能有些抽象,但通过实际案例,我们能轻松理解其工作原理。

二、案例演示

(一)求数字平方和

假设我们要计算表格中 B2:B5 单元格区域内 4 个数字平方的和,可使用以下公式:公式:REDUCE (0,B2:B5,LAMBDA (x,y,y*y x))

  • 参数 1:起始值为 0,这是计算的起点。
  • 参数 2:B2:B5 是需要循环处理的区域。
  • 参数 3:LAMBDA (x,y,y*y x) 定义了计算逻辑。在这个 LAMBDA 表达式中,“x” 表示起始值或上一次计算的结果,“y” 表示当前从 B2:B5 区域中取出的值。函数会将 B2:B5 中的值逐个代入 LAMBDA 进行计算。具体计算过程如下:
  • 当第一次代入数字 1 时,“x” 为 0,“y” 为 1,计算 1 * 1 0,结果为 1。LAMBDA 会将这个结果 1 传回给 “x”,等待下一次计算。
  • 代入数字 2 时,“x” 变为 1,“y” 为 2,计算 2 * 2 1,结果为 5。
  • 代入数字 3 时,“x” 是 5,“y” 为 3,计算 3 * 3 5,结果为 14。
  • 代入数字 4 时,“x” 为 14,“y” 为 4,计算 4 * 4 14,结果为 30。通过这样逐个遍历,将每次计算的结果累加起来。

探秘excel新函数REDUCEREDUCE用法:LAMBDA的最强辅助函数-趣帮office教程网

(二)连接文字

公式:=REDUCE ("",B2:B10,LAMBDA (x,y,x & y))REDUCE 函数不仅能对数字进行累加操作,还能实现文字的连接。此公式可将 B2:B10 单元格区域中的数据连接在一起。这里,初始值为空字符串 “”,在 LAMBDA 函数中,通过 “&” 运算符将 “x”(上一次连接的结果或初始空字符串)与 “y”(当前单元格的值)连接起来,实现文本的逐步拼接。

探秘excel新函数REDUCEREDUCE用法:LAMBDA的最强辅助函数-趣帮office教程网

三、工作中的实际案例

(一)批量替换

公式:=REDUCE (C2,{"袋";"kg";"个"},LAMBDA (x,y,SUBSTITUTE (x,y,"")))*1在这个公式中,我们的目标是将 C2 单元格内容中的单位【袋、kg、个】批量替换为空值。首先,REDUCE 函数以 C2 单元格的内容作为初始值 “x”,然后遍历 {"袋";"kg";"个"} 数组中的每个值 “y”。在 LAMBDA 函数中,使用 SUBSTITUTE 函数将 “x” 中的 “y” 替换为空字符串。最后乘以 1,将可能是文本格式的数字转换为真正的数字格式,方便后续计算。

探秘excel新函数REDUCEREDUCE用法:LAMBDA的最强辅助函数-趣帮office教程网

(二)批量指定替换

公式:=REDUCE (C2,F2:F4,LAMBDA (x,y,SUBSTITUTE (x,y,OFFSET (y,,1))))此公式旨在将中文单位替换为对应的英文单位。它的逻辑与批量替换案例类似。初始值为 C2 单元格内容,F2:F4 是包含中文单位的数组。在 LAMBDA 函数中,通过 OFFSET (y,,1) 实现向右偏移一行,获取对应的英文单位作为替换值,再使用 SUBSTITUTE 函数进行替换操作。

探秘excel新函数REDUCEREDUCE用法:LAMBDA的最强辅助函数-趣帮office教程网

(三)同类项拆分

公式:=REDUCE (B4:C4,B5:B7,LAMBDA (x,y,VSTACK (x,IFNA (HSTACK (y,TEXTSPLIT (OFFSET (y,,1),,"、")),y))))这个公式相对复杂,用于将合并同类项的表格快速拆分。

探秘excel新函数REDUCEREDUCE用法:LAMBDA的最强辅助函数-趣帮office教程网

下面逐步拆解:

  1. 使用 TEXTSPLIT 函数根据分隔符拆分:通过 TEXTSPLIT (OFFSET (y,,1),,"、"),以 “、” 为分隔符,对 OFFSET (y,,1) 获取到的值进行拆分。这里 OFFSET (y,,1) 表示获取与 “y” 同行但右移一列的值。
  2. 使用 HSTACK 函数在拆分结果左侧连接上对应的班级:HSTACK (y,TEXTSPLIT (OFFSET (y,,1),,"、")) 将当前行的班级 “y” 与拆分后的结果横向连接。
  3. 使用 IFNA 函数将错位值替换为对应的班级:如果拆分过程中出现错误值(例如某些单元格没有分隔符时可能产生的错误),IFNA 函数将其替换为当前班级 “y”。
  4. 使用 VSTACK 来将表头连接到结果的上面:VSTACK (x,IFNA (HSTACK (y,TEXTSPLIT (OFFSET (y,,1),,"、")),y)) 将上一次计算结果 “x”(初始为表头 B4:C4)与本次处理结果纵向连接。最后通过 REDUCE 函数循环遍历,将表头 B4:C4 作为起始值,确保在最终结果中添加上表头。

探秘excel新函数REDUCEREDUCE用法:LAMBDA的最强辅助函数-趣帮office教程网

REDUCE 函数功能强大,通过灵活运用它与其他函数的组合,能高效解决工作中的各种数据处理难题。希望大家动手实践,熟练掌握这个函数的应用技巧。