Google Sheets中能否为含IFNA、TRANSPOSE、FILTER的公式添加ARRAYFORMULA?
解决方案
修正后的数组公式
直接在D列顶部(如D2单元格)输入以下公式:
=ARRAYFORMULA(BYROW(B2:B, LAMBDA(category, IF(category="", "", IFNA(TRANSPOSE(FILTER('Category Setup'!$C$3:$C$42, 'Category Setup'!$B$3:$B$42=category)), "")))))
原理说明
BYROW(B2:B, LAMBDA(category, ...)):遍历B列从第2行开始的每个单元格,将当前单元格值赋值给category变量,逐行执行后续匹配逻辑IF(category="", "", ...):跳过B列空行,避免生成无效空结果- 保留你原本的
IFNA(TRANSPOSE(FILTER(...)), "")逻辑:匹配对应分类的子分类并转置,无匹配时返回空字符串 - 外层
ARRAYFORMULA:确保公式以数组形式输出,自动覆盖D列所有对应行
原公式失效原因
原公式中'FULL LIST'!$B2是单个单元格引用,ARRAYFORMULA无法自动遍历整个B列;同时FILTER不支持在ARRAYFORMULA中直接处理多条件数组,必须通过BYROW这类迭代函数逐行处理每个分类值,才能让TRANSPOSE正常生成对应行的横向结果。
内容的提问来源于stack exchange,提问作者dgDG
相关产品推荐
相关产品推荐

