我想在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