如何跳过逻辑值为false的行 筛选评分≤3的非空人员姓名
实现方案
需求梳理
需从人员信息表中按规则提取目标姓名,筛选规则如下:
- 跳过逻辑判定值为
FALSE的数据行 - 仅保留评分≤3分的条目
- 排除姓名、评分单元格为空的无效行
- 结果输出到指定的目标单元格区域
具体公式写法
不建议用多层嵌套IF/ELSE实现,逻辑冗余且容易出错,直接用筛选类函数即可,按你使用的Excel版本选对应写法:
365/2021及以上支持动态数组的版本
在目标区域的第一个单元格输入以下公式,按回车后结果会自动向下填充所有符合条件的姓名,无需手动拖动:
=FILTER(姓名列范围,(评分列范围<=3)*(逻辑值列范围=TRUE)*(姓名列范围<>"")*(评分列范围<>""))
参数替换说明:
- 姓名列范围:替换为你表格里存储人员姓名的单元格区间,比如实际姓名在A列第2行到第120行,就写
A2:A120- 评分列范围:替换为存储评分数据的对应单元格区间
- 逻辑值列范围:替换为存储TRUE/FALSE判定值的对应单元格区间
- 公式里多个条件用
*连接,代表需要同时满足所有条件的「逻辑与」判断
无动态数组支持的旧版Excel
在目标区域第一个单元格输入以下公式,输入完成后按Ctrl+Shift+Enter三键确认数组公式,再鼠标放在单元格右下角向下拖动填充,直到单元格显示空白即可:
=INDEX(姓名列,SMALL(IF((评分列<=3)*(逻辑值列=TRUE)*(姓名列<>"")*(评分列<>""),ROW(数据行范围),9^9),ROW(A1)))&""
调试提示
- 公式里的所有单元格范围要和你实际表格的列位置、数据总行数匹配,不要直接照搬示例行号
- 旧版公式如果直接按回车会返回错误值,必须按三键触发数组计算模式
- 如果需要排除文本格式的无效评分,可以在条件里增加
*(ISNUMBER(评分列范围))的判断规则即可
内容的提问来源于stack exchange,提问作者Mark Rebucas
相关产品推荐
相关产品推荐

