Excel數(shù)組公式應(yīng)用徹底醒悟
Excel中函數(shù)、公式大家都非常熟了,但“數(shù)組公式”你是否聽過(guò)、用過(guò)?什么是數(shù)組公式呢?根據(jù)微軟官方給出的解釋,數(shù)組公式:數(shù)組公式對(duì)一組或多組值執(zhí)行多重計(jì)算,并返回一個(gè)或多個(gè)結(jié)果。
一、什么是數(shù)組公式?
直接看微軟的解釋,也許并不是很容易理解,根據(jù)個(gè)人的理解,讓其更直白一點(diǎn),可以這樣簡(jiǎn)單理解,引用了數(shù)組(可以是一個(gè)或多個(gè)數(shù)值,或是一組或多組數(shù)值),并在編輯欄可以看到以“{}”括起來(lái)的公式就是數(shù)組公式。而數(shù)組公式的作用就是對(duì)一組(單個(gè)數(shù)據(jù)可以看成是一組)、多組數(shù)據(jù)進(jìn)行處理,然后得到想要的結(jié)果。
二、如何輸入數(shù)組公式
既然數(shù)組公式是以“{}”括起來(lái)的,那是不是在編輯欄在公式的兩端分別輸入“{}”就可以了呢?答案是否定的,在Excel中要輸入數(shù)組公式,必須以特定的方法來(lái)輸入,算是告訴Excel,我們這里輸入的是數(shù)組公式。
在某個(gè)單元格輸入數(shù)組公式的方法如下:
1.在編輯欄輸入完整的公式,并使編輯欄仍處在編輯狀態(tài);
2.按下Ctrl+Shift+Enter快捷鍵
經(jīng)過(guò)以上兩步操作以后,編輯欄會(huì)自動(dòng)脫離編輯狀態(tài),并且選中單元格后,在編輯欄可以看到公式的兩端有“{}”符號(hào)標(biāo)記,而雙擊進(jìn)入公式的編輯狀態(tài)時(shí),你會(huì)發(fā)現(xiàn)“{}”符號(hào)是不存在的。
這里做了一個(gè)類似微軟官網(wǎng)上的例子,這里詳細(xì)說(shuō)明一下用法及好處。
以上面圖片中的內(nèi)容為例,假設(shè)我一共買了三支股票,其股份及買入價(jià)格分別如圖中所示,現(xiàn)在我要計(jì)算我的總股本。
上面的計(jì)算過(guò)程可以說(shuō)一點(diǎn)問(wèn)題沒有,也絕對(duì)正確。但是試想一下,如果類似的數(shù)據(jù)有很多,如果不是計(jì)算我自己買的幾支股票而是其他類似情況的數(shù)據(jù)處理的時(shí)候,采用上面的方法時(shí),其工作量可想而知了。
我們?cè)倩氐降谝环鶊D中的公式“{=SUM(B2:D2*B3*D3}”,此公式便是一個(gè)典型的數(shù)組公式的應(yīng)用,此公式的作用就是計(jì)算B2*B3、C2*C3以及D2*D3的和。而B2:D2*B3*D3便是一個(gè)數(shù)組,其中包含三個(gè)元素,各元素的值就分別是各項(xiàng)的乘積。
從上面的圖中可以看到,第4行和第7行的計(jì)算結(jié)果是一樣的,這就是數(shù)組的效果,數(shù)組會(huì)根據(jù)當(dāng)前單元格所在位置自動(dòng)取數(shù)組中對(duì)應(yīng)序列的數(shù)值,如果將“=B2:D2*B3:D
如果將第7行中的算式外面加上SUM,你會(huì)發(fā)現(xiàn)結(jié)果仍然一樣,因?yàn)槟J(rèn)情況下,數(shù)組算式只取對(duì)應(yīng)序列的值,再加上SUM也只是對(duì)應(yīng)的值,如果使用數(shù)組公式,便是告訴Excel計(jì)算數(shù)組中所有數(shù)值的和,也就是單元格B5中的結(jié)果。
三、數(shù)組公式應(yīng)用進(jìn)階
數(shù)組公式最典型的應(yīng)用應(yīng)該是使用SUM替代SUMIF,雖然SUMIF很好用,但在Office 2007之前,也就是SUMIFS函數(shù)出現(xiàn)之前,如果想利用SUMIF進(jìn)行一次多重條件判斷的求和計(jì)算是很難實(shí)現(xiàn)的。
為了更便于理解,這里再用上面的例子進(jìn)行一個(gè)比較簡(jiǎn)單的運(yùn)算,上面只是列出了三支股票,如果我同時(shí)購(gòu)買了多支股票,現(xiàn)在想知道這些股票當(dāng)中,股價(jià)小于5元的股票有幾支(這一功能可以使用Countif函數(shù)來(lái)實(shí)現(xiàn),這里為了讓數(shù)組公式更便于理解,所以使用SUM、IF相結(jié)合的數(shù)組公式來(lái)實(shí)現(xiàn)。
在B10單元格輸入公式“=SUM(IF(B3:D3<5,1))”,按鈕按下Ctrl+Shift+Enter組合鍵,使公式變成數(shù)組公式“{=SUM(IF(B3:D3<5,1))}”。
下面說(shuō)一下公式的整個(gè)運(yùn)算過(guò)程。
1.IF(B3:D3<5,1),計(jì)算B3:D3區(qū)域內(nèi)數(shù)值小于5的個(gè)數(shù),因?yàn)槭褂?span lang="EN-US">IF判斷,數(shù)值小于5時(shí),取值1,所以該公式計(jì)算的結(jié)果是1,false,1,然后SUM進(jìn)行數(shù)組求和也就是1+false+1,所以結(jié)果為2。SUM在求值時(shí)會(huì)自動(dòng)忽略False,我們也可以把False直接當(dāng)作0來(lái)處理?;蛘邔⒐礁某?span lang="EN-US">IF(B3:D3<5,1,0),這樣計(jì)算的結(jié)果就是1,0,1了。
不知道看完了上面這些,大家對(duì)數(shù)組公式是否有所了解了,更進(jìn)階的應(yīng)用,且聽下回分解。
Excel數(shù)組公式從入門到精通之精通篇
一、課程回憶
什么是數(shù)組公式呢?顧名思義就是公式中包含數(shù)組的了,詳細(xì)含義請(qǐng)參看前文。但這里重點(diǎn)提醒的一點(diǎn)就是,如果要使用數(shù)組公式,在編輯欄輸入完公式以后一定要按下“Ctrl+Shift+Enter”組合鍵,使編輯欄的公式處在“{}”之中。
二、數(shù)組公式繼續(xù)深入
印象中是好幾年前了,當(dāng)時(shí)看過(guò)的一篇掃盲貼中,作者舉的例子真是太實(shí)用了。具體細(xì)節(jié)記不太清楚了,大致意思就是使用函數(shù)計(jì)算1到100的和。這里同樣以此為例。
1.求1到100的和
在往下看之前,大家想一下,如果讓你來(lái)處理該如何來(lái)處理呢?只用一個(gè)函數(shù)解決1到100的和,當(dāng)然也可以是1000、10000甚至更多。討論具體的數(shù)值沒有太大意義,此處只是希望通過(guò)此例讓大家更進(jìn)一步的了解數(shù)組公式的用法。
解答:{=SUM(ROW(1:100))}
問(wèn)題分析:求1到100的和,答案是5050(小學(xué)生都知道^-^),但Excel必須是你告訴了它正確的方法,它才能知道。計(jì)算從1到100的和,實(shí)際上就是計(jì)算1+2+3+4+……+98+99+100,好了,答案出來(lái)了,在編輯欄中輸入“=sum(1+2+3+4+……+98+99+100)”。相信聰明的一定對(duì)此答案不滿意,雖然能得到正確的結(jié)果,但很明顯是“錯(cuò)誤”的方法。
要得到1到100的正確數(shù)列,最簡(jiǎn)單的方法就是使用Row()或是Column()函數(shù),由于個(gè)人習(xí)慣,我比較習(xí)慣于Row(),所以這里以Row()函數(shù)為例。
熟悉Row()函數(shù):在A1單元格中輸入“=Row()”,使用填充柄填充至A5,看到什么結(jié)果?是不是每一個(gè)單元格中值就是其對(duì)應(yīng)的行數(shù)。
在工作表的任意一個(gè)單元格中輸入“=sum(Row(1:100))”,然后按Ctrl+Shift+Enter組合鍵,你會(huì)驚喜的發(fā)現(xiàn),我們要的結(jié)果出現(xiàn)了。
任務(wù):統(tǒng)計(jì)出“一班”、“二班”共計(jì)多少人?
此題要如何解決?SUMIF用兩次?或是COUNT用兩次?這里還是演示數(shù)組公式的用法,所以先用SUM和IF組合的形式。
這里再次解釋一下這個(gè)公式“{=SUM(IF((A2:A12="一班")+(A2:A12="二班"),1,0))}”,外側(cè)SUM沒什么好用的了,就是求()內(nèi)各數(shù)的和。中間的“IF((A2:A12="一班")+(A2:A12="二班"),1,0))”的運(yùn)算過(guò)程是這樣的,判斷A2:A12區(qū)域內(nèi)單元格的值是否是“一班”,如果是則結(jié)果為1,則此公式計(jì)算的結(jié)果依次是“1、0、0、1、0、0、1、0、0、1、
在Excel中,數(shù)組如果不放在數(shù)組公式中使用,通常數(shù)組在特定單元格中只代表與其特定單元格所對(duì)應(yīng)的一個(gè)值(數(shù)組中的一個(gè)元素),放在數(shù)組公式中使用時(shí),通常整個(gè)數(shù)組元素都會(huì)參與運(yùn)算。
三、數(shù)組公式精通
這里是一個(gè)實(shí)際工作中的例子,只是我稍微變化了一下,還是SUM應(yīng)用的例子。
需求:如下圖所示,現(xiàn)在要統(tǒng)計(jì)員工張三在1號(hào)加工所有機(jī)器的“實(shí)績(jī)”,也就是說(shuō)在右側(cè)的數(shù)據(jù)中先過(guò)濾日期為1,然后再過(guò)濾人員為張三的數(shù)據(jù),最后統(tǒng)計(jì)實(shí)績(jī)的結(jié)果。如果使用一個(gè)公式完成這一需求,你能想到嗎?當(dāng)然SUMIFS是除外的,因?yàn)?span lang="EN-US">SUMIFS是Office 2007以后的產(chǎn)物。
這次用的公式可以看出,比之前用的公式還要簡(jiǎn)單,連IF都不要了,實(shí)際上這里的“=”符號(hào)就是起到了一個(gè)類似IF的效果。
這里再說(shuō)明一下公式的執(zhí)行過(guò)程,公式中E2:E21表示數(shù)組區(qū)域,這個(gè)相信已經(jīng)不需要再說(shuō)明了,放到數(shù)組公式中就是依次取數(shù)組中的各個(gè)數(shù)值,也就是依次取日期中的值。E2:E21=A2,實(shí)際上就是拿日期中的每一個(gè)值依次與A2中的日期進(jìn)行比對(duì),如果相等則結(jié)果為True,即1,如果不相等則為False即為0。到了這里也許你有一點(diǎn)明白了,如果第一不相等,則后面的無(wú)需再繼續(xù)下去了,因?yàn)楣嚼镉玫娜渴?#8220;*”乘積符號(hào),任何數(shù)乘0等于0。如果此項(xiàng)符合再繼續(xù)判斷G2:G21區(qū)域,也就是用姓名依次比對(duì),如果和B2中的姓名相同,則為Ture,即1,如果為False,即0,繼續(xù)下一個(gè)回合。如果此項(xiàng)也為Ture,很明顯前面兩項(xiàng)的結(jié)果為1*1=1,再乘以H2:H21數(shù)組中對(duì)應(yīng)的數(shù)字,即符合條件的“實(shí)績(jī)”,以第一個(gè)符合條件的第一條記錄為例,在數(shù)組公式運(yùn)行的第一個(gè)回合為SUM(1*1*234),結(jié)果當(dāng)然為234了,然后再依次完成整個(gè)數(shù)組的運(yùn)算,我們最終的目的就達(dá)到了。
數(shù)組公式非常有用,效率也高,但真正的理解、熟練掌握也不是一件很容易的事。但大家記住數(shù)組中的數(shù)據(jù)是一一對(duì)應(yīng)的,放到數(shù)組公式中使用時(shí),數(shù)組中的數(shù)據(jù)會(huì)按順序依次參與相應(yīng)的運(yùn)算。
希望大家能夠慢慢的理解、貫通。
聯(lián)系客服