如何在 Excel 中根据多个条件 return 多个匹配项的列标题?

How to return the column heading for multiple matches, from multiple criteria, in Excel?

我正在为不同的客户群处理 40 多个价目表。通过输入商品编号和价格,我想显示与 item/price 匹配的所有价目表的名称。我已经像下面的 table 一样设置了商品和价格表。有些商品在多个价目表中的价格相同,有些价目表没有列出所有商品。

Item     ListPrice  Red    Blue   Green    Grey
Hosaka2  0       0   8            1
TrodesH  0       0   0   0     0
TrodesL  0       0   0   0
Shuri                             

我想在单元格中输入 TrodesH 和 $380,并使用公式 return Blue & Grey。或者输入 Hosaka2 和 $200 并使用公式 return ListPrice.

我过去曾使用此 Index array formula return 对单个条目进行多次匹配。例如,列出地址与我输入的邮政编码匹配的所有帐号。这非常方便。但在这里我正在寻找项目和价格的组合。有什么想法可以让我继续前进吗?

编辑:为了让 Excel 文件更易读,我将上述数据放在名为 "Matrix" 的工作表中,并将查找公式放在名为 "Check."[= 的工作表中14=]

假设 A1:F5 包含数据,H2 包含感兴趣的项目,例如 TrodesH,I2 包含感兴趣的价格,例如 $380,try...

J2:

=COUNTIF(INDEX($B:$F,MATCH($H2,$A:$A,0),0),$I2)

K2, confirmed with CONTROL+SHIFT+ENTER, and copied across:

=IF(COLUMNS($K2:K2)<=$J2,INDEX($B:$F,SMALL(IF(INDEX($B:$F,MATCH($H2,$A:$A,0),0)=$I2,COLUMN($B:$F)-COLUMN($B)+1),COLUMNS($K2:K2))),"")

希望对您有所帮助!

以下图为范本(根据自己的数据排版和位置调整),可以在J1和copy/paste的彩色区域输入公式:

J1:
=IFERROR(INDEX(:,AGGREGATE(15,6,COLUMN($B:$F)
  /($A:$A=$H1)/($B:$F=$I1),COLUMN(A:A))),"")