从复杂的表中获取某些值
我在Excel中有一个相当复杂的数据结构( Google Drive链接 )。 我想从这张表中获得一定的价值:
我尝试了一个行列索引匹配的组合。 然而,这不起作用,因为我不知道如何find所需的列。
任何build议如何转换这个数据结构?
在M和N中添加两个帮助列
在M4中input:
=MATCH(H4,A:A,0)
IN N4input:
=COUNTIF(A:A,H4)-1+M4
这些将返回本组的第一个和最后一个行号。
然后在J4中,数组input:
=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确认 。 然后根据需要填写。
有可能是一个更简单的版本!
如果您可以添加辅助列A,您可以执行以下A3: =E4
,A4: =E4
,A5: =E4
,A6: =E4
,A7: =E8
…
一旦你有了前四个值,你可以将它拖到第一组,然后从第二组中拖拽这四个公式到最后。
你的数据将如下所示:
然后在单元格K4中input以下公式:
=SUMIFS($E$3:$E$26, $A$3:$A$26, K$3, $B$3:$B$26, $I4, $C$3:$C$26, $J4)
一旦你有了这个,你可以任意拖拽它。
这里唯一的问题是把date列入帮助栏,上面的方法只有在所有组的大小相同的情况下才是容易的,但是我假设给定了样本数据。
此解决scheme不需要工作(帮助)单元格,只需对输出表进行一些小调整即可:
在单元格I3
input单词Date
然后在单元格J4
input该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))