如何将工作表名称作为Lambda函数的参数传入?
如何在Excel Lambda函数中传入工作表名称
你遇到的问题是因为Excel会把Lambda参数dataSheet直接当作固定工作表名解析,而非动态变量。正确的做法是用INDIRECT函数将参数拼接成合法的引用字符串,让Excel动态识别目标工作表。
步骤1:正确定义Lambda函数
在名称管理器中创建calcB,函数内容改为:
calcB = LAMBDA(dataSheet, SUM(INDIRECT(dataSheet&"!B1"), INDIRECT(dataSheet&"!B10")))
这里通过dataSheet&"!B1"拼接出类似"Data1!B1"的字符串,再用INDIRECT让Excel解析这个字符串对应的单元格。
步骤2:调用Lambda函数
在Calculations工作表中调用时,需要将工作表名称作为文本字符串传入:
=calcB("Data1")
可选优化:无需手动加引号
如果不想每次调用都写引号,可以借助CELL函数动态获取工作表名称,调用方式改为:
=calcB(MID(CELL("filename", Data1!A1), FIND("]", CELL("filename", Data1!A1))+1, 99))
这样只需指定目标工作表的任意单元格(比如Data1!A1),就能自动提取工作表名称传入函数。
内容的提问来源于stack exchange,提问作者astromonerd
相关产品推荐
相关产品推荐

