2017-02-10 49 views
1

我是Excel中的新数组公式,我的大脑在R中训练时间过长,所以如果此问题很简单或者太具体,我很抱歉。我有看起来像这样的数据:使用Excel中的数组公式对问题进行索引

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,发现有组别1 = 1
  2. 对于每个ID第一次迭代,什么是最大值时组别1 = 1
  3. 对于每个ID,多少= 1它采取组1的重复才能到最大值时组别1 = 1

我已经想通了如何指定最大值通过每个ID:{=MAX(IF(A:A=A2,C:C))}

任何援助将apprec iated。到目前为止,我已经通过了一些快速教程,并且我愿意浏览您可能知道的其他任何优质资源。

+0

文字以下。它可以帮助我们复制你的情况 – CallumDA

+1

谢谢你转换成文本的那种人。我很抱歉。 – pocketlizard

回答

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通过。将其放在新列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) 
+1

这非常有帮助,你不知道。即使只看到你如何攻击这个问题来得出这些公式,也是非常有益的。我觉得我学到了很多。 我不相信你的问题3(K14)的公式是正确的。它显示了达到最大值的迭代总数,而不是Group1迭代的数量。 (在这个例子中,它们恰好相同)。但是这有很大的帮助,所以我会尝试解决这个问题 - 我可以看到在某个时间点应该引用D列。 – pocketlizard

+0

问题3的公式需要一个更多条件来排除多个单元格具有最大数量的情况。您可以添加'*($ D $ 2:$ D $ 9 = 1)' 可以在这里找到数组公式的一个很好的介绍[Excel数组公式,函数和常量](https://www.ablebits.com/office -addins-blog/2015/02/25/array-companies-functions-excel /#evaluate-formula) – LukasV

+0

感谢您的链接。该解决方案计算迭代的总次数,而不是组1迭代的次数。我相信我使用'{= SUM(($ A $ 2:$ A $ 9 = J14)*($ D $ 2:$ D $ 9 = 1)}'? – pocketlizard