在Excel的應(yīng)用中,數(shù)據(jù)統(tǒng)計(jì)類的問題占了很大一部分,概括來說,統(tǒng)計(jì)是指以下這些內(nèi)容:求和、計(jì)數(shù)、平均值、最大值、最小值、標(biāo)準(zhǔn)偏差和方差(這兩個(gè)一般很少用到)。
就拿前五種常見的統(tǒng)計(jì)來說,都有對應(yīng)的函數(shù)來實(shí)現(xiàn):求和(sum)、計(jì)數(shù)(count)、平均值(average)、最大值(max)、最小值(min)。關(guān)于這五個(gè)函數(shù),相信大家一定都不陌生。
日常應(yīng)用中,還需要在以上這五種統(tǒng)計(jì)方式加上一定的條件,于是就有了條件求和(sumif)與多條件求和(sumifs)、條件計(jì)數(shù)(countif)與多條件計(jì)數(shù)(countifs)、條件平均值(averageif)與多條件平均值(averageifs),但是沒有條件最大值和條件最小值的函數(shù)。
如果需要統(tǒng)計(jì)條件最大值和條件最小值,就需要用到公式才能實(shí)現(xiàn),今天就來學(xué)習(xí)這兩個(gè)公式的原理。
條件最大值的公式
下圖是一個(gè)銷售數(shù)據(jù),現(xiàn)在需要統(tǒng)計(jì)指定這幾天的最高銷售額,指定的日期就是一個(gè)條件,這個(gè)問題也就是一個(gè)典型的條件最大值的例子。
條件最大值的公式相對簡單一點(diǎn),也是一個(gè)模式化的公式,就本例來說公式為:=MAX(($A$2:$A$16=I2)*$B$2:$G$16)
注意是個(gè)數(shù)組公式,需要按三鍵結(jié)束。
如果僅僅是學(xué)習(xí)這個(gè)公式的思路,遇到問題可以套用的話非常容易,簡單解釋一下公式各部分的具體含義和作用:
($A$2:$A$16=I2)這是具體條件,A列為數(shù)據(jù)源的日期,I2為要具體判斷的日期,二者進(jìn)行比較,通常使用數(shù)組公式的時(shí)候,為了減少運(yùn)輸量,涉及到引用范圍的時(shí)候盡量準(zhǔn)確,同時(shí)使用絕對引用加以固定,防止公式在下拉的過程中出錯(cuò)。
$B$2:$G$16是實(shí)際數(shù)據(jù)所在的區(qū)域,條件得到的是一組邏輯值,日期判定符合要求的對應(yīng)TRUE,其他的全部是FALSE,如圖:
第二個(gè)是TRUE,對應(yīng)3月9日,邏輯值與具體數(shù)據(jù)相乘,只有TRUE對應(yīng)的這一組是實(shí)際銷售額,其他的都變成零。
此時(shí),在這一組數(shù)據(jù)中取最大值,就是我們需要的結(jié)果。
當(dāng)公式下拉的時(shí)候,條件發(fā)生了變化,邏輯值中的TRUE位置隨之變化,實(shí)際銷售額的數(shù)據(jù)也對應(yīng)變化。
條件最大值公式的本質(zhì)是利用了邏輯值和數(shù)組的計(jì)算原理,將不符合條件的數(shù)據(jù)全都變成零,從而達(dá)到目的。
但是這個(gè)公式使用時(shí)有個(gè)缺陷,僅當(dāng)數(shù)據(jù)都是正數(shù)時(shí)才有效,如果要在一堆負(fù)數(shù)中取最大值,就不行了。
那么對于這種情況,公式該如何寫呢?
這個(gè)問題先留著,我們看完條件最小值以后就明白了。
條件最小值的公式
條件最小值需要用到min if的套路,公式為:=MIN(IF($A$2:$A$16=I2,$B$2:$G$16,999))
同樣還是數(shù)組公式,需要三鍵輸入:
公式比較好理解,if的第一個(gè)參數(shù)$A$2:$A$16=I2是條件,第二個(gè)參數(shù)$B$2:$G$16是實(shí)際數(shù)據(jù)區(qū)域,第三個(gè)參數(shù)999是一個(gè)比數(shù)據(jù)區(qū)域中的數(shù)都大的一個(gè)數(shù)字,平時(shí)也有用9^9的,就是9的9次方。
這個(gè)if會(huì)得到這樣一組結(jié)果:
符合條件的位置是實(shí)際數(shù)據(jù),其他位置都是999,之所以不用前面最大值的那個(gè)套路,也就是數(shù)組 邏輯值的方法,目的是為了避免邏輯值產(chǎn)生的0,當(dāng)有0出現(xiàn)的話,最小值就取不到實(shí)際數(shù)據(jù)中的最小值,而只能是0了。
如果這個(gè)公式的思路理解的話,再回頭看看之前條件最大值那里留下的問題,如果都是負(fù)數(shù),公式怎么寫?
可以借鑒min if這個(gè)思路,想想如何變成max if吧,這個(gè)問題留給有興趣研究的朋友,如果寫出來的話,可以在下方留言。
聯(lián)系客服