2015-10-16 93 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))