如何简化Google Sheets中多组VLOOKUP+ROUND的IF嵌套合并公式?
优化后的Google Sheets公式
最终公式
=ARRAYFORMULA( LET( match_row, MATCH($E85, '2024 Master Data'!$C:$C, 0), types, INDEX('2024 Master Data'!$C:$T, match_row, SEQUENCE(1,7,11,2)), qtys, INDEX('2024 Master Data'!$C:$T, match_row, SEQUENCE(1,7,12,2)), processed_rows, IF( types<>"", types&" "&IF(ISNUMBER(qtys), ROUND(qtys,2), qtys), "" ), TEXTJOIN(CHAR(10), TRUE, processed_rows) ) )
优化说明
- 减少重复查找:用
MATCH一次性定位$E85在「2024 Master Data」C列的匹配行,替代原公式多次重复调用VLOOKUP,大幅降低计算复杂度 - 批量处理7组数据:通过
SEQUENCE(1,7,11,2)生成7个木材类型的列号(从第11列开始,步长2),对应数量列号用SEQUENCE(1,7,12,2)生成,一次性取出所有7组数据 - 自动过滤空值:
TEXTJOIN的第二个参数设为TRUE,会自动忽略木材类型为空的组,无需额外判断 - 数量格式化:对数字类型的数量自动保留两位小数,非数字类型直接显示原内容
使用注意
确保目标单元格已开启「自动换行」(右键单元格 → 格式 → 自动换行),否则换行符CHAR(10)不会生效。
内容的提问来源于stack exchange,提问作者Radhika Vazirani
相关产品推荐
相关产品推荐

