意想不到的Excel公式,以0分隔提取最大值
excelperfect
很奇怪的問題,意想不到的公式。
如下圖1所示,在列A中有一組數值,其中有很多0值,要求將列A中的數值轉換成列B中的數值,也就是說,在0之間的單元格使用這些單元格中的最大值填充。
圖1
如何使用公式來實現?
初看這個問題,我感覺有點不可能實現,因爲分隔的0的個數不相同,要求每段的最大值,起始和終止點也不一樣,但仍然有人實現了。這正應了那句話,沒有做不到,衹有想不到。
其解決方案是,在單元格B3中輸入公式:
=IF(IF(A3 0,MAX(OFFSET(A2,,,MATCH(0,A3:A15,0),1),B1))=FALSE,0,IF(A3 0,MAX(OFFSET(A2,,,MATCH(0,A3:A15,0),1),B1)))
然後下拉拖放至數據末尾。
這個公式很巧妙!OFFSET函數與MATCH函數配郃來動態擴展區域,從而使得查找的範圍永遠落在兩組0之間的單元格區域,然後MAX函數中與已經獲得的最大值(即公式所在單元格上方的單元格中的值)比較,取最大值。
公式中的IF函數條件判斷部分也很有特點,如果相鄰單元格中的值爲0,則公式單元格中的值就爲0,否則使用公式來求最大值。
這個公式有點繞,因爲要求的數據本身就有點繞,但仔細理解,還是很有意思和啓發的。
本站是提供個人知識琯理的網絡存儲空間,所有內容均由用戶發佈,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵擧報。
0條評論