更有效的索引匹配方式?

时间:2019-03-18 02:55:00

标签: excel

我有一个像这样的excel表;应该定期填充。

         01.16   02.16   03.16    04.16    05.16     06.16
Amy       5.6     6.2      7.2     7.6       0
Bob       7.3     7.8       0
Cindy     6.2     6.8      7.8     

我正在尝试创建一个公式,该公式将告诉我最新的一组“完整”非零结果是什么。在这种情况下,我希望它说一些类似

的内容
        02.16
Amy      6.2  
Bob      7.8  
Cindy    6.8 

我有类似的作品:

 B6 = index(B1:G1,1,min(COUNTIFS(B2:G2,"<>0",B2:G2,"<>"),COUNTIFS(B3:G3,"<>0",B3:G3,"<>"),
      COUNTIFS(B4:G4,"<>0",B4:G4,"<>"))

 B7 = INDEX(B2:G4,MATCH(A8,$A$2:$A$4,0),MATCH($B$7,B1:G1,0))

但是我确实觉得它很麻烦,并希望看看是否有人对如何简化它有想法?

1 个答案:

答案 0 :(得分:0)

假设您的数据集位于单元格A1:G4中:

data

您可以使用SUMPRODUCT公式查看哪个“列”为您提供完整的结果(请记住,Excel还将空单元格也视为零):

=SUMPRODUCT(($B$2:$G$2<>0)*($B$3:$G$3<>0)*($B$4:$G$4<>0))

该公式的当前结果为2。现在,您知道应该使用哪一列,然后可以将其与INDEX组合以提取值:

index

只需记住更新每个公式中的row_num参数以获得正确的结果(每月1个,艾米2个,鲍勃3个,辛迪4个):

=INDEX($B$1:$G$4,1,SUMPRODUCT(($B$2:$G$2<>0)*($B$3:$G$3<>0)*($B$4:$G$4<>0)))

例如,对于Cindy,您需要使用以下公式:

=INDEX($B$1:$G$4,4,SUMPRODUCT(($B$2:$G$2<>0)*($B$3:$G$3<>0)*($B$4:$G$4<>0)))

希望它对您有用。