我在 Windows 8.1 上使用 Excel 2016。
我希望能够匹配两个条件,其中一个条件是列标题,另一个条件是可以在该列中出现任意次数的单元格内容,并返回多行标题作为结果。
在我的示例中,我希望能够在单元格 B6 和 B7 中输入水果的名称(列标题)和品质(“好”或“坏”),并接收与该水果和品质相匹配的任何特征(行标题)。例如,如果我输入“苹果”和“好”,我希望它返回“外观”和“味道”(而不是“价格”)。
我以前使用过 Index Match,也听说过使用数组公式来处理单元格区域。但我不知道如何将所有这些结合起来——尤其是因为我找到的所有教程都是关于如何匹配行标题和列标题,并找到结果单元格。另外,我不想“硬编码”对给定列标题的引用,因为我可能并不总是想匹配“Apples”。
我尝试过数据透视表,但它不是很优雅(我的真实数据有 5 个“质量”项目,而不仅仅是 2 个)。
A B C D E F
1 | Apples | Bananas | Lemons | Mangos | Oranges
-----------------------------------------------------------
2 Appearance | good | good | bad | bad | good
----------------------------------------------------------
3 Flavour | good | good | bad | good | good
----------------------------------------------------------
4 Price | bad | good | good | bad | good
----------------------------------------------------------
5 | | | | |
----------------------------------------------------------
6 Fruit: | apples | | | |
----------------------------------------------------------
7 Quality: | good | | | |
----------------------------------------------------------
8 | | | | |
----------------------------------------------------------
9 Results: | | | | |
----------------------------------------------------------
答案1
这是@Scott Craner 提出的建议的变体,但它可能适合您。
我添加了占位符来表示其他品质。将此公式放在 B11 中,然后向下拖动行数,使其等于您拥有的品质数。
=IF(INDEX($B2:$F2,,MATCH($B$8,$B$1:$F$1))=$B$9,$A2,"")
如果您不喜欢 Results1 的外观而确实希望将值放在一个单元格中,则将此公式放在 B18 中并隐藏第 11 行至第 15 行。
=IF(B11="","",B11&"//") & IF(B12="","",B12&"//") & IF(B13="","",B13&"//") & IF(B14="","",B14&"//") & IF(B15="","",B15&"//")
将您想要的任何内容替换为“//”的分隔符。