如何为Google Sheets中的多区域筛选查询公式添加ARRAYFORMULA?
为公式添加ARRAYFORMULA的解决方案
修改后的公式
=ARRAYFORMULA( BYROW('Piattaforma Web'!$J$2:$J, LAMBDA(j_val, IF(j_val="",, TRANSPOSE(FLATTEN(QUERY({ FILTER('Censimento PdiV'!$AD$2:$AL, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$AM$2:$AU, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$AV$2:$BD, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$BE$2:$BM, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$BN$2:$BV, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$BW$2:$CE, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$CF$2:$CN, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$CO$2:$CW, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$CX$2:$DF, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val), FILTER('Censimento PdiV'!$DG$2:$DO, 'Censimento PdiV'!$B$2:$B="ON", 'Censimento PdiV'!$U$2:$U=j_val) }, "SELECT Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9 WHERE Col1='Magazzino di Spedizione'"))) ) )) )
关键改动说明
- 用
ARRAYFORMULA配合BYROW自动遍历Piattaforma Web工作表J2:J的所有行,无需手动下拉公式 - 通过
LAMBDA(j_val)将J列的每个值作为参数传入原逻辑,替代原公式中固定的$J2引用 - 添加
IF(j_val="",, ...)判断,避免空行生成无效结果 - 完整保留原公式的筛选、查询、扁平化和转置逻辑,确保结果符合需求
需求匹配验证
该公式完全满足以下要求:
- 筛选
Censimento PdiV工作表中10组9列区域(AD2:AL至DG2:DO)的发货地址 - 同时满足三个条件:区域首列等于
Magazzino di Spedizione、B列=ON、U列=J列对应行的值 - 按顺序检查10组区域,首组不匹配则自动检查后续组
内容的提问来源于stack exchange,提问作者Nightmare
相关产品推荐
相关产品推荐

