我在Excel中有一个相当复杂的数据结构(Google Drive link)。我想从这张表中得到一些值:
我尝试了一个行列INDEX MATCH的组合。但是这不起作用,因为我不知道如何找到所需的列。
有关如何转换此数据结构的任何建议吗?
答案 0 :(得分:2)
在M和N中添加两个辅助列。
在M4中输入:
=MATCH(H4,A:A,0)
IN 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 进行确认。然后根据需要填充和填充。
可能是一个更简单的版本!
答案 1 :(得分:2)
如果您可以添加辅助列A,则可以执行以下操作
A3:=E4
,A4:=E4
,A5:=E4
,A6:=E4
,A7:=E8
......
获得前四个值后,您可以将其向下拖动到第一个组,然后从第2组将这四个公式拖到最后。
然后在Cell K4中输入以下公式:
=SUMIFS($E$3:$E$26,
$A$3:$A$26, K$3,
$B$3:$B$26, $I4,
$C$3:$C$26, $J4)
一旦你有了这个,你就可以随意向下拖动它。
这里唯一的问题是将日期纳入辅助列,如果所有组的大小相同,上面的方法很容易,但我假设给定了样本数据。
答案 2 :(得分:1)
此解决方案不需要使用(helper)单元格,只需对输出表进行微调:
在单元格Date
I3
然后在单元格FormulaArray
中输入此J4
,然后复制到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))