Google Sheets中如何用嵌套FILTER函数实现分层工具列表输出?
Google Sheets 动态分层筛选工具ID方案
针对你需要根据选中的层级位置,动态分层显示对应工具ID的需求,这里提供一个基于LET、REDUCE和FILTER的弹性解决方案,完全适配数据动态增减的场景:
核心公式(Sheet2中输入,假设下拉选择框在A1)
=LET( selected, A1, data, Sheet1!A:F, loc_col, INDEX(data,,3), tool_col, INDEX(data,,1), slash_count, LEN(REGEXREPLACE(selected, "[^/]", "")), sub_locs, UNIQUE(FILTER(loc_col, LEFT(loc_col, LEN(selected)+1)=selected&"/")), IF( slash_count=2, FILTER(tool_col, loc_col=selected), REDUCE("", sub_locs, LAMBDA(result, sub_loc, VSTACK(result, sub_loc, FILTER(tool_col, loc_col=sub_loc)) )) ) )
公式说明
变量定义:用
LET封装常用变量,提升公式可读性和维护性selected:获取下拉选中的位置文本data:引用Sheet1的完整数据源区域loc_col:指向C列的位置层级文本tool_col:指向A列的工具IDslash_count:通过统计斜杠数量区分选中位置的层级(上层/底层)sub_locs:自动提取选中位置下的所有直接子区域,适配新增数据
逻辑分支
- 若选中最底层位置(如
TOOL ROOM/CART 1/DRAWER 1,斜杠数量为2),直接用FILTER输出对应工具ID - 若选中上层位置(如
TOOL ROOM或TOOL ROOM/CART 1),用REDUCE迭代每个子区域,先输出子区域标题,再堆叠该区域下的所有工具ID,实现分层展示
- 若选中最底层位置(如
动态数据适配特性
- 用
UNIQUE和FILTER自动识别新增的位置和工具行,无需手动更新公式 - 下拉选择框数据源直接引用
Sheet1!C:C,新增位置会自动出现在下拉选项中
内容的提问来源于stack exchange,提问作者J-Drake
相关产品推荐
相关产品推荐

