> 技术文档 > 借助 LAMBDA 公式,实现单元格区域高效转换

借助 LAMBDA 公式,实现单元格区域高效转换


新特性介绍

转换单元格(Transform)” 功能允许用户将自定义的单参数 LAMBDA 公式应用于选中的单元格区域。用户可选择公式参数的作用域 —— 按单元格、按行、按列或按整个区域。

转换完成后,源单元格区域会被清空,转换后的区域将应用到工作表中。转换后单元格样式保持不变,仅存储的单元格值会发生改变。

在 V18.2 版本中,SpreadJS 设计器引入了全新的“转换”功能,这一特性真正实现了 Lambda 函数与单元格选择的无缝对接。借助该功能,用户能够直接将 LAMBDA 公式应用于选定的单元格范围,并将原始内容替换为计算结果,将原本复杂的数据转换过程简化为一个简洁的单步操作。
借助 LAMBDA 公式,实现单元格区域高效转换

操作步骤

  1. 在普通工作表上选择一个连续的单元格区域

  2. 右键单击,选择“转换单元格”(Transform Cells)
    借助 LAMBDA 公式,实现单元格区域高效转换

  3. 在弹出的对话框中:

  4. 在“公式”(Formula)字段中输入单参数LAMBDA公式。输入过程中支持公式自动联想提示
    借助 LAMBDA 公式,实现单元格区域高效转换

  5. 选择所需的“作用范围”(Scope)

  6. 点击“确定”(OK)。原单元格区域将被清空,并替换为转换后的数值,样式保持不变。

示例 #1:按列对行业数据求和

  • 源单元格区域:
    借助 LAMBDA 公式,实现单元格区域高效转换

  • 公式:=LAMBDA(x, SUM(x))(SUM(x)即对x区域求和)

  • 作用范围:按列(By Column)
    借助 LAMBDA 公式,实现单元格区域高效转换

示例 #2:按单元格将文本转换为大写

  • 源单元格区域:
    借助 LAMBDA 公式,实现单元格区域高效转换

  • 公式:=LAMBDA(x, UPPER(x))(UPPER(x)即将x中的文本转换为大写)

  • 作用范围:按单元格(By Cell)
    借助 LAMBDA 公式,实现单元格区域高效转换

示例 #3:按分号和逗号拆分订单详情

  • 源单元格区域:
    借助 LAMBDA 公式,实现单元格区域高效转换

  • 公式:=LAMBDA(x, TEXTSPLIT(x, “;”, “,”))(TEXTSPLIT(x, “;”, “,”)即按分号和逗号拆分x中的文本)

  • 作用范围:按单元格(By Cell)
    借助 LAMBDA 公式,实现单元格区域高效转换

原始数据结构为3行2列。转换后:

  • 根据设定的拆分逻辑,每行最多扩展为2个子行,因此总行数变为3(原始行数)×2(每行最大扩展子行数)= 6行。
  • 列方向上,内容拆分后重新整理为4列。

综上,整个转换过程会确保每行充分扩展,最终输出6行4列的结果,系统地呈现所有拆分后的信息。

应用价值

在实际应用场景中,这一特性的优势尤为明显。比如在处理大量销售数据时,我们可能需要对某一区域的销售额数据进行单位转换,从 “元” 转换为 “万元”。以往,我们可能需要在单独的单元格中输入转换公式,然后复制公式结果并粘贴回原数据区域,操作步骤繁琐且容易出错。而现在,使用 V18.2 的“转换”功能,我们只需选中需要转换的销售额单元格范围,应用自定义的 LAMBDA 公式(如 “=LAMBDA(x,x/10000)”,该公式将输入值除以 10000 以实现单位转换),SpreadJS 便能立即用计算结果覆盖所选区域,整个过程一气呵成,大大提高了数据处理的效率和准确性。

不仅如此,在数据清洗和预处理阶段,“转换”功能同样大显身手。当面对包含各种格式不规范数据的单元格区域时,我们可以利用 LAMBDA 公式进行统一的格式调整。比如将日期格式不一致的单元格内容,通过自定义 LAMBDA公式转换为统一的 “YYYY-MM-DD” 格式,确保数据的一致性和可用性。

注意事项

  • 有效公式格式:=LAMBDA(x, )
  • 仅支持一个连续区域
  • 仅支持普通工作表区域——不支持报表、集算表、甘特图、表格、数据透视表或数据区域。
  • 当转换生成动态数组结果时,输出内容会根据所有转换生成的最大行数和列数,自动填充到相邻单元格中。详情请参考示例3。
  • 若转换输出内容超出当前工作表区域的边界,超出部分将被截断。