You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 365中使用Lambda与BYROW函数出现#VALUE!错误的解决问询

问题:多日期工作表动态汇总的优雅实现方案

我正在单个工作簿内创建一份汇总多XLS工作表数据的动态报表,这些工作表的名称与特定日期绑定。

单个工作表取值正常

以下公式可正常运行,返回名为“221122”的工作表中BB38单元格的值:

=LAMBDA(r,INDIRECT("'" & r & "'!BB38"))("221122")

BYROW遍历出现错误

当尝试用BYROW遍历工作表名称数组而非单独传递名称给Lambda时,出现#VALUE!错误:

=BYROW({"221122"}, LAMBDA(r,INDIRECT("'" & r & "'!BB38")))

目前仅能通过在INDIRECT外层添加SUM来规避错误:

=BYROW({"221122"}, LAMBDA(r,SUM(INDIRECT("'"&r&"'!BB38"))))

目标:返回多列溢出区域

上述SUM方法不够美观,且当需要返回一组溢出的单元格区域时(如下公式),无法使用SUM技巧:

=BYROW({"221120","221121","221122"}, LAMBDA(r,INDIRECT("'"&r&"'!BB38:BD38")))

期望得到的溢出区域格式如下:

A列B列C列
221120!BB38221120!BC38221120!BD38
221121!BB38221121!BC38221121!BD38
221122!BB38221122!BC38221122!BD38

临时解决办法

评论中Harun24hr指出BYROW无法返回动态数组,这正是SUM方法有效的原因。我目前的临时方案是逐个获取单个单元格的1×N区域,再用HSTACK拼接,示例如下:

a, BYROW(sheets, LAMBDA(r, SUM(INDIRECT("'" & r & "'!AY38")))),
b, BYROW(sheets, LAMBDA(r, SUM(INDIRECT("'" & r & "'!AZ38")))),
c, BYROW(sheets, LAMBDA(r, SUM(INDIRECT("'" & r & "'!BA38")))),
d, BYROW(sheets, LAMBDA(r, SUM(INDIRECT("'" & r & "'!BB38")))),
HSTACK(a,b,c,d)

核心诉求

有没有比用HSTACK拼接1×N列更优雅、可扩展的方法?


内容的提问来源于stack exchange,提问作者nickpharris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 18:45:39