使用MAP、Lambda与XMATCH函数计算披萨总重量遇阻求助
Google Sheets MAP函数公式修正方案
问题分析
原公式存在两个核心问题:
- 完全没引用F列的数量值,自然不会执行乘法计算
- 匹配逻辑错误:原公式用SORTN提取的是尺寸列内容,而非对应样式列的目标数值,多余的
JOIN("x",...)还会干扰结果输出
修正后的公式
在Pizza标签页的G2单元格输入以下公式:
={"Total Weight";MAP(D2:D,E2:E,F2:F,LAMBDA(type,size,qty, IF(OR(type="",size="",qty=""),"", IFERROR( INDEX(Round!F2:AE,MATCH(size,Round!E2:E,0),XMATCH(type,Round!G1:1))*qty, INDEX(Square!G2:AA,MATCH(size,Square!D2:D,0),XMATCH(type,Square!G1:1))*qty ) ) ))}
公式说明
- 新增
F2:F作为MAP的第三个参数,引入数量值用于乘法计算 - 优先在Round标签页匹配:
MATCH(size,Round!E2:E,0):定位尺寸对应的行号XMATCH(type,Round!G1:1):定位样式对应的列号INDEX(...)提取对应单元格数值后乘以数量qty
- 若Round中匹配失败(触发IFERROR),自动切换到Square标签页执行相同匹配逻辑
- 增加
OR(type="",size="",qty="")判断,避免空值行出现错误计算
验证示例
以你提到的案例(F2=4,对应数值360)为例,公式会在Round标签页匹配到对应数值360,计算360*4=1440,正确输出结果。
内容的提问来源于stack exchange,提问作者InStackOfHelp
相关产品推荐
相关产品推荐

