从复数 table 中获取某些值
Get certain values from complex table
我在 Excel (Google Drive link) 中有一个相当复杂的数据结构。我想从这个 table:
中得到某些值
我尝试了行列索引匹配的组合。但是这不起作用,因为我不知道如何找到所需的列。
有什么关于如何转换这个数据结构的建议吗?
在 M 和 N 中添加两个辅助列。
在 M4 中输入:
=MATCH(H4,A:A,0)
IN N4 输入:
=COUNTIF(A:A,H4)-1+M4
这些将 return 组的第一个和最后一个行号。
然后在J4,数组输入:
=INDEX(INDEX(INDEX($D:$D,$M4):INDEX($D:$D,$N4),MATCH(J,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,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 中输入以下公式:
=SUMIFS($E:$E,
$A:$A, K,
$B:$B, $I4,
$C:$C, $J4)
一旦你有了这个,你就可以任意向下和向右拖动它。
这里唯一的问题是将日期放入辅助列中,上面的方法只有在所有组的大小相等时才容易,但我假设给定样本数据。
此解决方案不需要工作 (helper) 个单元格,只需对您的输出稍作调整 table:
在单元格 I3
中输入单词 Date
然后在单元格 J4
中输入此 FormulaArray
然后复制到 J7
然后到范围 K4:L7
(公式数组按 [Ctrl]
+ [Shift]
+ [Enter]
同时)
=INDEX($D:$D,
MATCH($H4&$I&J,$A:$A&$B:$B&$D:$D,0)
+MATCH($I4,OFFSET($B:$B,
+MATCH($H4&$I&J,$A:$A&$B:$B&$D:$D,0),0),0))
我在 Excel (Google Drive link) 中有一个相当复杂的数据结构。我想从这个 table:
中得到某些值我尝试了行列索引匹配的组合。但是这不起作用,因为我不知道如何找到所需的列。
有什么关于如何转换这个数据结构的建议吗?
在 M 和 N 中添加两个辅助列。
在 M4 中输入:
=MATCH(H4,A:A,0)
IN N4 输入:
=COUNTIF(A:A,H4)-1+M4
这些将 return 组的第一个和最后一个行号。
然后在J4,数组输入:
=INDEX(INDEX(INDEX($D:$D,$M4):INDEX($D:$D,$N4),MATCH(J,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,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 中输入以下公式:
=SUMIFS($E:$E,
$A:$A, K,
$B:$B, $I4,
$C:$C, $J4)
一旦你有了这个,你就可以任意向下和向右拖动它。
这里唯一的问题是将日期放入辅助列中,上面的方法只有在所有组的大小相等时才容易,但我假设给定样本数据。
此解决方案不需要工作 (helper) 个单元格,只需对您的输出稍作调整 table:
在单元格 I3
Date
然后在单元格 J4
中输入此 FormulaArray
然后复制到 J7
然后到范围 K4:L7
(公式数组按 [Ctrl]
+ [Shift]
+ [Enter]
同时)
=INDEX($D:$D,
MATCH($H4&$I&J,$A:$A&$B:$B&$D:$D,0)
+MATCH($I4,OFFSET($B:$B,
+MATCH($H4&$I&J,$A:$A&$B:$B&$D:$D,0),0),0))