Excel如何根据列1匹配结果返回列2对应单元格范围并按规则取值
Excel按类别匹配判断返回值方案
假设你的原始数据结构为:A列为字母列(数据范围A2:A100,A1为表头),B列为对应结果列(数据范围B2:B100,值包含yes/no/Unknown/空值),D列为去重后的唯一字母列表(D2开始依次放A、B、C等需要统计的字母),E列为最终返回结果列。
你不需要额外手动获取匹配项的单元格范围,直接通过COUNTIFS函数就能实现需求,不同版本Excel的可用方案如下:
Excel 365 / 2021及以上版本
在E2单元格输入以下公式,下拉填充即可:
=IF(COUNTIFS(A:A,D2,B:B,"yes")>0,"yes","no")
公式逻辑:统计A列等于当前待统计字母、且B列等于yes的行数量,只要数量大于0就返回yes,否则返回no,自动忽略Unknown、空值、no等非yes值,完全覆盖你提到的所有场景。
如果需要单独提取某个字母对应的所有B列值做其他计算,可以用FILTER函数,比如提取所有A对应的B列值:
=FILTER(B:B,A:A="A","无匹配结果")
返回的结果是所有匹配项组成的数组,可以直接嵌套进其他函数使用。
Excel 2019及更早版本
旧版本建议固定数据范围提升计算效率,公式逻辑和上述一致,E2输入以下公式下拉即可:
=IF(COUNTIFS(A$2:A$100,D2,B$2:B$100,"yes")>0,"yes","no")
示例验证
代入你给出的测试场景:
- A对应值包含yes,返回yes
- B对应值包含yes,返回yes
- C对应值无yes,返回no
和期望输出完全一致。
内容的提问来源于stack exchange,提问作者Theresa M
相关产品推荐
相关产品推荐

