交互矩阵组合列出生成:内置函数实现还是需VBA代码?
无需VBA,用Excel内置函数即可实现需求
按Excel版本选择公式:
- 若使用Excel 365/2021及以上(支持动态数组),可直接用简洁的动态公式
- 旧版Excel则用数组公式(需按
Ctrl+Shift+Enter确认输入)
具体公式写法:
假设R列的Part A值对应B4:L14区域的行,要在S列返回对应行中所有带“x”的Part B(即第4行的列标题):- 动态数组版本(Excel 365/2021):
在S5单元格输入:
公式会自动溢出所有匹配的Part B值,无需手动下拉。=TRANSPOSE(FILTER($B$4:$L$4,INDEX($B$5:$L$14,MATCH(R5,$A$5:$A$14,0),0)="x")) - 旧版本数组公式:
在S5单元格输入:
输入完成后按=INDEX($B$4:$L$4,SMALL(IF(INDEX($B$5:$L$14,MATCH(R5,$A$5:$A$14,0),0)="x",COLUMN($B$4:$L$4)-COLUMN($B$4)+1),ROW(A1)))Ctrl+Shift+Enter触发数组计算,再下拉公式直到出现错误值(表示已提取完所有匹配项)
- 动态数组版本(Excel 365/2021):
公式逻辑说明:
MATCH(R5,$A$5:$A$14,0):定位R列当前Part A在A列的对应行号INDEX($B$5:$L$14,...):提取该行的所有交互标记单元格- 动态数组通过
FILTER筛选出标记为“x”的列,TRANSPOSE将横向结果转为纵向;旧版本通过IF标记符合条件的列位置,SMALL按顺序取出位置,最后用INDEX匹配对应的Part B标题
内容的提问来源于stack exchange,提问作者Idrawthings
相关产品推荐
相关产品推荐

