将列名与行名列表匹配

时间:2018-09-25 16:32:12

标签: excel excel-formula

我有以下Excel电子表格:

       A          B      C        D      E            F        G        H
1                 Q1     Q2      Q3     Q4        Asset 2      Q4
2   Asset 1       15     85      90     70        Asset 3      Q2
3   Asset 2       40     80      45     60        Asset 3      Q4
4   Asset 3       30     60      55     60        Asset 5      Q1                 
5   Asset 4       12     72      25     15
6   Asset 5       60     48      27     98
7 

Cells A1:E6中,我的表现与季度Q1-Q4不同。
当前,在Column F中,我列出了所有性能为60的资产。

正如您所看到的,可能会在Column F中多次列出资产,因为它在Cells A1:E6中可能具有相同的性能多次。在这种情况下,Asset 360Q2中的表现都是Q4

现在,我希望在Column G中将季度自动匹配到每个资产。
考虑到资产可能被多次列出,您是否有一个公式可以做到这一点?

2 个答案:

答案 0 :(得分:1)

如果需要公式,请使用此数组公式

=INDEX($1:$1,SMALL(IF(($B$2:$E$6=$G$1)*($A$2:$A$6=H1),COLUMN($B$2:$E$6)),COUNTIF($H$1:H1,H1)))

作为数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。

enter image description here

答案 1 :(得分:0)

对某些东西进行硬编码,并使用提供的布局。

="Q"&AGGREGATE(15,6,COLUMN(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-1)/($A$2:$A$6=F1),1),0))/(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-1)/($A$2:$A$6=F1),1),0)=60),COUNTIF($F$1:F1,F1))-1

POC

这确实是一种欺骗,因为它将列号和字母Q连接在一起。对于实际上看您的标题并且可以位于更新公式可能位于的任何地方的东西

=INDEX($B$1:$E$1,AGGREGATE(15,6,COLUMN(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-ROW($A$2)+1)/($A$2:$A$6=F1),1),0))/(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-ROW($A$2)+1)/($A$2:$A$6=F1),1),0)=60),COUNTIF($F$1:F1,F1))-COLUMN($B$2)+1)