2015-08-27 32 views
0

我有一列值大約爲-20 to 20。在這些價值觀我有一定的收藏形成 「峯」(如果數據以圖形),像這樣:最接近的單元格,其值低於excel中定義的值

-7.431377404 -0.123504621 8.267563041 11.90999127 10.14175866 1.613639202 -7.170097474 -6.826058515

我將「峯」的一部分定義爲高於3的值。如何選擇一個「峯」內的所有值並選擇最大值?在上面的例子中,我想要選擇11.91的值。我的數據中有很多這些「高峯」的例子。例如,這裏的另一個:

0.571340419 0.543676911 3.162139566 4.132734389 1.649930702 -0.201880797

在這裏,我想向4.13選擇。我手上有太多數據要做每一項。基本上,如果我想象我的數據在一個圖上,我想要一些選擇每個單峯尖的東西。這可以做到嗎?

非常感謝。

+0

是個是否有將每組數據彼此分開的標準?例如,在第一個例子中,我們怎麼知道從'-7.431 ...'開始並以'-6.826 ...'結尾?有沒有日期或標識符?用不同的方式說明,你如何區分集合? – Soulfire

+0

另外 - 你的意思是隻有山峯,或者還有山谷?即在上面的示例中,如果值爲-12.1,那麼您是否希望選擇11而不是11,因爲它距離0有更遠的距離? –

+0

除了它在我所擁有的數據欄中的進一步分析外,沒有標準,如果這就是你的意思?這是一個大集合的一部分。是的,只有高峯。不是山谷。 –

回答

0

這個公式會發現在你的數據的高峯值,假設它是所有一個數據的「設置」,並假設它位於列A:

=MAX(A:A) 

這將進一步檢查,以確保此值至少是3:

=IF(MAX(A:A)>=3,MAX(A:A),"") 

這將進一步給你電池的位置,如果對你很重要(會給行號):

=IF(MAX(A:A)>=3,MATCH(MAX(A:A),A:A,0),"") 

編輯以確定每組連續細胞內至少爲+3的個體峯值。這是一個非數組公式的解決方案,因爲Tom Sharpe已經在下面提供了該替代方案。如果您瞭解陣列公式,那可能是您的首選解決方案。

首先使用一個輔助柱 - 這每個進入的至少3的新範圍單元B1時間將計數,硬編碼爲1。在單元格B2輸入以下和向下拖動:

=IF(AND(A1<3,A2>=3),B1+1,B1) 

這會檢查最後一行是否小於3,並且當前行至少是3.如果是這樣,那麼這是一個新的分組。

然後在C列,開始C2,把下面並拖累 - 這將保持運行檢查什麼在分組中的最高值[硬編碼C1爲C1 = A1]:

=IF(B2=B1,MAX(A2,C1),A2) 

那麼對於任何給定的分組,用這個公式來看看最高峯那裏[在這裏的例子,它會檢查最高峯第5組中]:

=INDEX(C:C,MATCH(5+1,B:B,0)) 

將需要與周圍打了第一和最後的值,但這是一般的想法。同樣,Array Formula解決方案可能是首選。

+0

我認爲這會給全局最大值,而OP是在本地最大值之後 –

+0

@MattS你能否澄清一下,你如何確定一組數據的真實含義?在你的評論中,你說「它是一個大集合的所有部分」......這是什麼意思? –

+0

這是一列值,其中大約有8000列。 –

0

這是諸如此類的事情,我在想: -

=IF(A2>=3,MAX(INDEX(A$1:A1,MAX(ROW(B$1:B1)*(B$1:B1=FALSE))):INDEX(A3:A$15,MATCH(FALSE,B3:B$15,0))),"") 

在C2中輸入數組公式,並拉下。

我首先將列B中的所有單元格設置爲FALSE,如果列A < 3和TRUE如果> = 3,所以它應該搜索每個峯值從最後一個FALSE到下一個。

enter image description here

它可以由更容易,如果波峯和波谷的序號B2從1開始並且向前使用從B3以下公式: -

=IF(OR(AND(A2>3,A3<=3),AND(A3>3,A2<=3)),B2+1,B2) 

然後這個非陣列式可以是主要涉及從去年C2: -

=IF(A2>3,MAX(INDEX(A$1:A1,MATCH(B2-1,B$1:B1)) 
:INDEX(A3:A$15,MATCH(B2+1,B3:B$15,0))),"") 

enter image description here

相關問題