我想在Excel中做一些數據驗證,但是難以使vlookup
以遞歸方式工作。 這裏是數據的一個小樣本excel中的遞歸查找
+---------------+-----------------+
| Duration(sec) | Start time(sec) |
+---------------+-----------------+
| 1.428571429 | 96.57142857 |
| 1.888888889 | 95 |
| 1.888888889 | 96.22222222 |
| 2.428571429 | 95.71428571 |
| 2.75 | 96 |
| 2.8 | 95.3 |
| 2.846153846 | 94.30769231 |
| 2.857142857 | 97.42857143 |
| 3 | 94.8 |
| 3 | 97 |
| 3 | 99 |
| 3.111111111 | 95.66666667 |
| 3.2 | 95.5 |
| 3.333333333 | 96.22222222 |
| 3.416666667 | 80.33333333 |
| 3.416666667 | 94.16666667 |
| 3.5 | 94.1 |
| 3.615384615 | 78.92307692 |
+---------------+-----------------+
第一列是一個事件的持續時間和第二起點。我需要找到例如5個持續時間最短的項目。
我開始是這樣的:{=AVERAGE(SMALL(IF(ISNUMBER(B:B),B:B,""),ROW(INDIRECT("1:5"))))}
它給了我5次最小持續時間的平均值。到現在爲止還挺好。它的工作原理應該如此。
然後嘗試混合上面的vlookup
,以便在第一步中返回5個最小持續時間,然後查找相應的起點,然後計算它們的平均值。 我試過了:{=AVERAGE(VLOOKUP(SMALL(IF(ISNUMBER(B:B),B:B,""),ROW(INDIRECT("1:5"))),B:C,2,FALSE))}
但沒有運氣。 VLOOKUP
似乎只返回一個值。所以我不能像這樣使用它。 任何想法?
P.S.我使用ISNUMBER
,因爲我在數據中有NaN值。
Aahhh,任何提示格式表的外觀? – maus
從發佈的示例看,您的數據似乎已經按**期限排序。**如果這是真的,那麼5個最小的持續時間已經在頂部。如果這是真的,那麼只是平均列** B中的前5個項目** –
是的,這是事實,但它並沒有幫助我很多,因爲我有這樣的多列。想想那個發佈的是指2014年。我有一個巨大的Excel與這些類型的列並排,如:Dur2010,Start2010,Dur2011,Start2011等。如果我以Dur2010爲例,然後確定我可以將前5個Start2010的元素。但剩下的事呢?其他的都會搞砸了。所以我需要找到一個更復雜的方法來做到這一點.. – maus