使用Excel中的数组公式索引问题

时间:2017-02-10 15:34:27

标签: excel excel-formula array-formulas

我是Excel中的数组公式的新手,我的大脑已经在R中训练了太长时间,所以如果这个问题很简单或太具体,我很抱歉。我的数据看起来像这样:

ID  Iteration   Value   Group1  Group2
2   1           100     0       0
2   2           85      1       0
2   3           28      0       0
3   1           94      1       0
5   1           83      0       1
5   2           50      1       1
6   1           94      0       0
6   2           28      1       0

我想使用数组公式以几种不同的方式查询数据。我想:

  1. 对于每个ID,找到Group1 = 1的第一个迭代。
  2. 对于每个ID,Group1 = 1时的最大值是什么。
  3. 对于每个ID,当Group1 = 1时,Group1 = 1的迭代次数达到最大值。
  4. 我已经想出如何通过以下方式指定每个ID的最大值:{=MAX(IF(A:A=A2,C:C))}

    任何帮助将不胜感激。到目前为止,我已经完成了一些快速教程,并且我愿意查看您可能知道的任何其他优秀资源。

1 个答案:

答案 0 :(得分:1)

看看这个并告诉我你的想法 - 特别是问题3

我的设置看起来像这样

enter image description here

所有公式都向下拖动,它们如下:

B14中的公式(问题1)

{=INDEX($B$2:$B$9,MATCH(1,($A$2:$A$9=A14)*($D$2:$D$9=1),0))}

G14中的公式(问题2)

{=MAX(($A$2:$A$9=$F14)*($D$2:$D$9=1)*$C$2:$C$9)}

K14中的公式(问题3)

{=SUM(($A$2:$A$9=J14)*($C$2:$C$9=G14)*$B$2:$B$9)}

<强>更新

如果你想知道在我们达到问题2中ID = 2的最大值之前,ID = 2中Group1 = 1的次数,那么我就这样继续:

在您的数据中添加另一列,我将其标记为: Group1 Passes 。将其放在新列F2中,然后向下拖动。

=COUNTIFS($A$2:A2,A2,$D$2:D2,1)

然后,您可以在K14

中使用以下内容
=SUM(($A$2:$A$9=J14)*($C$2:$C$9=G14)*($D$2:$D$9=1)*$F$2:$F$9)