2017-02-10 80 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