2015-10-16 70 views
1

我在Excel中有一个相当复杂的数据结构(Google Drive link)。我想从该表中获取某些值:从复杂表中获取特定值

enter image description here

我试过行 - 列索引匹配的组合。然而,这不起作用,因为我不知道如何找到所需的列。

任何建议如何转换这种数据结构?

+1

样本簿会节省我们大量的输入。我怀疑一个简单的LOOKUP公式会起作用。 – Rory

+0

@Rory请检查我的更新! – mrquad

+0

谢谢。你能为每个组命名范围吗? – Rory

回答

2

M中添加两个辅助柱和N.

在M4输入:

=MATCH(H4,A:A,0) 

在N4输入:

=COUNTIF(A:A,H4)-1+M4 

这将返回第一个和最后一个行号为组。

然后在J4,阵列输入:

=INDEX(INDEX(INDEX($D:$D,$M4):INDEX($D:$D,$N4),MATCH(J$3,INDEX($D:$D,$M4):INDEX($D:$D,$N4),0)+1):INDEX($D:$D,$N4),MATCH(1,1/(INDEX(INDEX($B:$B,$M4):INDEX($B:$B,$N4),MATCH(J$3,INDEX($D:$D,$M4):INDEX($D:$D,$N4),0)+1):INDEX($B:$B,$N4)=$I4),0)) 

记住与按Ctrl + Shift确认+ Enter键。然后根据需要填写。

有可能是一个更简单的版本!

2

如果你可以加一个辅助列A,你可以做以下 A3:一旦你的前四个=E8 ...

=E4,A4:=E4,A5:=E4,A6:=E4,A7值,您可以将其拖放到第一组,然后从组2拖动这四个公式到最后。

你的数据会看起来像这样: enter image description here

然后在小区K4您输入以下公式:

=SUMIFS($E$3:$E$26, 
     $A$3:$A$26, K$3, 
     $B$3:$B$26, $I4, 
     $C$3:$C$26, $J4) 

一旦你有了这个,你可以拖动它向下和向右随意。

这里唯一的问题是将日期列入帮助列,如果所有组的大小相同,但我假设给定样本数据,上述方法就很容易。

1

此解决方案不要求工作(辅助)细胞,只是一个小的调整你的输出表:

在单元格中输入单词DateI3

然后在细胞J4进入这个FormulaArray然后复制直到J7然后到范围K4:L7

(公式数组通过按[Ctrl]+[Shift]+[Enter]同时

=INDEX($D$2:$D$26, 
MATCH($H4&$I$3&J$3,$A$2:$A$26&$B$2:$B$26&$D$2:$D$26,0) 
+MATCH($I4,OFFSET($B$2:$B$26, 
+MATCH($H4&$I$3&J$3,$A$2:$A$26&$B$2:$B$26&$D$2:$D$26,0),0),0))