我在 Excel 2010 中有下表:
Code Variable 2003 2004 2005
923587 WC05301 0.300926921 0.665902164 0.916134943
923587 WC05001 0.715744225 0.453420519 0.312655924
923587 WC08376 0.247108211 0.374099217 0.378376177
923587 WC08001 0.947697297 0.686620132 0.41852137
923587 WC09204 0.78860597 0.246313221 0.556252026
923587 PTBV 0.400760313 0.637586519 0.723963115
923587 DPS 0.840353147 0.782413662 0.823206141
923587 WC02201 0.515966677 0.242782576 0.289028551
923587 WC03351 0.107782133 0.873951446 0.76152958
923587 WC02001 0.599825005 0.330610221 0.254449218
923587 WC02101 0.787267498 0.174806764 0.319124298
923587 WC02051 0.841697111 0.067667619 0.261424441
我想将此表转换为以下格式:
Code Year WC05301 WC05001 WC08376 WC08001 WC09204 PTBV DPS WC02201 WC03351 WC02001 WC02101 WC02051
923587 2003
923587 2004
923587 2005
923587 2006
923587 2007
923587 2008
923587 2009
923587 2010
923587 2011
923587 2012
923587 2013
923587 2014
我想要查找 (923587,WC05301,2003) 交叉点的第一个空单元格。这将产生以下形式的公式:
=INDEX(table,MATCH(Code&Year,A2:A&C1:H1,0),MATCH(Variable,B2:B))
但是,这不会返回正确的值。我知道这与
A2:A&C1:H1
上的条件有关。但是如何解决/调整呢?
最佳答案
问题是一个查找范围是垂直的,另一个是水平的。我建议使用 SUMPRODUCT
并将所有条件一个接一个地放置:
=SUMPRODUCT($C$2:$E$13*($A$2:$A$13=$A16)*($C$1:$E$1=$B16)*($B$2:$B$13=C$15))
$C$2:$E$13
是范围。($A$2:$A$13=$A16)
是匹配代码的第一个条件。($C$1:$E$1=$B16)
是匹配年份的第二个条件。($B$2:$B$13=C$15)
是匹配变量的最后一个条件。0 将是没有匹配项的结果。
SUMPRODUCT
基本上是取整个范围并检查是否满足所有三个条件。现在,如果满足多个数字,您将获得所有匹配的总和作为结果,而不是第一个匹配 if INDEX
工作。
关于excel - 带转置的条件查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26930079/