[]
此函数允许你创建并命名自定义的可复用函数,这些函数能像其他函数一样被调用。
LAMBDA([parameter1, parameter2, ...], calculation)
该函数包含以下参数:
参数 | 说明 |
|---|---|
parameter | [可选] 你想传递给函数的值,例如单元格引用、字符串或数字。最多可输入 253 个参数。 |
calculation | [必需] 你希望执行并作为函数结果返回的公式。它必须是最后一个参数,且必须返回一个结果。 |
如果向 LAMBDA 函数提供的参数数量不正确或超过 253 个,函数将返回 #VALUE! 错误。
如果传递给 LAMBDA 函数的参数数量不正确,函数将返回 #VALUE! 错误。
如果在 LAMBDA 函数内部调用自身且形成循环调用,函数将返回 #NUM! 错误。
如果在单元格中创建 LAMBDA 函数但未在该单元格内调用它,函数将返回 #CALC! 错误。
注意:如果 lambda 函数是递归的,最大递归深度与浏览器相关。
以下代码示例展示了 LAMBDA 函数的基本用法。
// 创建一个工作簿。
Workbook workbook = new Workbook();
IWorksheet sheet = workbook.getWorksheets().get(0);
// 设置数据。
Object[][] data = {
{ "日期","华氏温度" },
{ "2025-06-01", 95},
{ "2025-06-02", 95},
{ "2025-06-03", 96.8},
{ "2025-06-04", 86},
{ "2025-06-05", 82.4},
{ "2025-06-06", 89.6},
{ "2025-06-07", 86},
{ "2025-06-08", 87.8}
};
sheet.getRange("B3:C11").setValue(data);
ITable table = sheet.getTables().add(sheet.getRange("B3:C11"), true);
ITable table1 = sheet.getTables().add(sheet.getRange("E3:E11"), true);
sheet.getRange("B3:B11").setNumberFormat("yyyy-mm-dd");
table.convertToRange();
table1.convertToRange();
// 定义 LAMBDA 名称 ToCelsius,实现将华氏温度转换为摄氏温度的公式。
workbook.getNames().add("ToCelsius", "=LAMBDA(temp, (5/9) * (temp-32))");
// 在 E4:E11 区域插入公式,将 C 列的华氏温度值转换为摄氏温度。
sheet.getRange("E4:E11").setFormula2("ToCelsius(C4)");
sheet.getRange("E3").setValue("=ToCelsius(C4:C11)");
sheet.getRange("B:E").自动调整列宽();
// 保存 Excel 文件。
workbook.save("LAMBDAToCelsius.xlsx");
GcExcel.NET 支持七个新的 Lambda 辅助函数。这些函数通过将 Lambda 函数作为参数,助力创建可复用的 Lambda 函数,它们自身也可作为独立函数使用。更多信息,请参考:
BYROW
BYCOL
ISOMITTED
MAKEARRAY
MAP
REDUCE
SCAN