如何在Google Sheets的FILTER函数中添加IF逻辑处理蓝图列
解决Google Sheets中筛选并区分有/无蓝图物品的问题
- 核心需求:筛选排除
tienda/drop/quest的物品,仅对有蓝图的物品显示BP列内容,无蓝图物品的BP列置空 - 原公式问题:仅完成了内容筛选和分割提取,未区分是否为蓝图物品,导致无蓝图物品的材料被错误显示
修改后的公式(西班牙语分隔符)
=LET( filtered_data; FILTER(Weapons!$J$2:$J$1000; Weapons!$J$2:$J$1000<>"tienda"; Weapons!$J$2:$J$1000<>"drop"; Weapons!$J$2:$J$1000<>"quest"); ARRAYFORMULA(IF(REGEXMATCH(filtered_data; "蓝图"); INDICE(SPLIT(filtered_data; ","); 0; 1); "")) )
公式说明
LET函数先将筛选后的J列数据存入filtered_data变量,避免重复执行筛选操作REGEXMATCH判断每一行内容是否包含“蓝图”关键词(若表格中为英文标识,替换为"Blueprint"即可)- 符合蓝图条件的行,用
INDICE(SPLIT(...);0;1)提取逗号分割后的第一个元素;不符合条件的返回空值 ARRAYFORMULA确保对数组中每一行批量执行判断和提取操作
兼容旧版Sheets的替代方案(无需LET函数)
=ARRAYFORMULA( IF( REGEXMATCH(FILTER(Weapons!$J$2:$J$1000; Weapons!$J$2:$J$1000<>"tienda"; Weapons!$J$2:$J$1000<>"drop"; Weapons!$J$2:$J$1000<>"quest"); "蓝图"); INDICE(SPLIT(FILTER(Weapons!$J$2:$J$1000; Weapons!$J$2:$J$1000<>"tienda"; Weapons!$J$2:$J$1000<>"drop"; Weapons!$J$2:$J$1000<>"quest"); ","); 0; 1); "" ) )
内容的提问来源于stack exchange,提问作者Barragán Louisenbairn
相关产品推荐
相关产品推荐

