Excel中如何根据二进制值从矩阵中提取对应行表头
实现方案(无VBA,仅用Excel自带函数)
以下方案完全可以实现你要的按列匹配二进制值、提取对应行表头的需求,操作简单:
方案1:适配Excel 365 / Excel 2021及以上版本
用FILTER溢出函数即可一步完成:
- 假设原始数据存储范围为
A1:D6:A列是国家行表头,BD列依次是Product1Product3的二进制值,表头行在第1行 - 先在你要输出结果的区域第一行输入
Product1、Product2、Product3作为结果表头 - 点击Product1下方的第一个空白单元格,输入公式:
=FILTER($A$2:$A$6, B$2:B$6=1, "") - 按回车后公式会自动向下溢出,填充所有Product1列值为1的国家
- 把该单元格的公式向右拖拽到Product2、Product3列下方,即可自动生成所有匹配结果
方案2:适配Excel 2019及更早的旧版本
用数组公式组合实现:
- 原始数据范围和结果表头设置和方案1一致
- 点击Product1下方的第一个空白单元格,输入公式:
=INDEX($A:$A,SMALL(IF(B$2:B$6=1,ROW($2:$6),99999),ROW(A1)))&"" - 输入完成后按
Ctrl+Shift+Enter三键触发数组公式计算,不要直接按回车 - 把该单元格公式向下拖拽到足够多的行数(行数≥原始数据的国家总数即可),直到单元格显示空白
- 选中Product1列所有已经填充公式的单元格,向右拖拽到Product2、Product3列,即可得到全部结果
内容的提问来源于stack exchange,提问作者rlsrls
相关产品推荐
相关产品推荐

