昨天提到宏表函數(shù),不過(guò)好多粉絲都是第一次接觸,一頭霧水。今天,盧子來(lái)一個(gè)全面說(shuō)明。
宏表函數(shù)是個(gè)“老古董”,實(shí)際上是現(xiàn)在廣泛使用VBA的“前身”。雖然后來(lái)的各版本已經(jīng)不再使用它,但還能支持。宏表函數(shù)很奇葩,必須定義名稱才能使用,脫離了名稱就沒有存在的價(jià)值。
1.是一份出差伙食補(bǔ)貼費(fèi)明細(xì)?;锸逞a(bǔ)貼費(fèi)都是用表達(dá)式顯示在單元格,現(xiàn)在要合計(jì)下費(fèi)用,該如何做?
Step 01選擇E2單元格,單擊“公式”選項(xiàng)卡中的“定義名稱”按鈕,在“名稱”文本框中輸入:合計(jì),“引用位置”輸入下面的公式,最后單擊“確定”按鈕。
=EVALUATE(D2)
Step 02 定義完名稱后,只需在E2單元格輸入公式,并向下填充公式,即可自動(dòng)統(tǒng)計(jì)表達(dá)式。
=合計(jì)
2.有些人喜歡將需要統(tǒng)計(jì)的數(shù)據(jù)用背景色填充,以為這樣比較醒目,統(tǒng)計(jì)起來(lái)就方便。當(dāng)然前提是你用計(jì)算器統(tǒng)計(jì),如果用Excel那就是自找麻煩。
現(xiàn)在對(duì)需要統(tǒng)計(jì)的津貼用不同背景色填充,要分別統(tǒng)計(jì)兩種顏色的津貼總數(shù)。
Step 01 選擇C2單元格,單擊“公式”選項(xiàng)卡中的“定義名稱”按鈕,在“名稱”文本框中輸入:顏色,“引用位置”輸入下面的公式,最后單擊“確定”按鈕。
=GET.CELL(63,B2)
Step 02 定義完名稱后,只需在C2單元格輸入公式,并向下填充公式,即可自動(dòng)統(tǒng)計(jì)表達(dá)式,有背景色的就大于0,沒有背景色的就是0。
橙色的背景色為46,所以公式可設(shè)置為:
=SUMIF(C:C,46,B:B)
綠色的背景色為10,所以公式可設(shè)置為:
=SUMIF(C:C,10,B:B)
如果背景色多的話,需要再次定義一個(gè)名稱作為輔助列,獲取D列的顏色對(duì)應(yīng)值。
除了背景色,常用的還有一個(gè)字體顏色,參數(shù)1為24代表字體顏色。
=GET.CELL(24,B2)
GET.CELL參數(shù)1可以設(shè)置成1-66,共66種,有興趣的可以去測(cè)試。
知識(shí)擴(kuò)展:
高版本的Excel可以按背景色進(jìn)行篩選,再借助SUBTOTAL函數(shù)就可以按背景色篩選求和。
在C17輸入公式:
=SUBTOTAL(9,B2:B16)
篩選橙色的背景色,就可以統(tǒng)計(jì)出來(lái)。不過(guò)這種有一個(gè)局限性就是只能按篩選的顏色進(jìn)行統(tǒng)計(jì),不能分別統(tǒng)計(jì)各種顏色。
3.除了這兩個(gè)宏表函數(shù),還有一個(gè)比較常用就是GET.WORKBOOK函數(shù),可以利用這個(gè)函數(shù)創(chuàng)建目錄。
Step 01 新建一張表格,工作表名稱改成目錄。單擊“公式”選項(xiàng)卡中的“定義名稱”按鈕,在“名稱”文本框中輸入:目錄,“引用位置”輸入下面的公式,最后單擊“確定”按鈕。
=GET.WORKBOOK(1)
知識(shí)擴(kuò)展:
直接用=GET.WORKBOOK(1)雖然可以獲取目錄,但當(dāng)工作表更改時(shí)不能自動(dòng)更新,這樣略有缺陷。這時(shí)可以做一個(gè)改進(jìn),在后面用&T(NOW()),NOW函數(shù)是隨時(shí)更新的,T(NOW())就是代表隨時(shí)更新的空文本,最終公式為:
=GET.WORKBOOK(1)&T(NOW())
T函數(shù)的作用就是將數(shù)字變成空文本,而文本保持不變。說(shuō)到T函數(shù)就必須說(shuō)一下N函數(shù),N函數(shù)的作用就是將文本轉(zhuǎn)換成0,而數(shù)字保持不變。
N函數(shù)有一個(gè)經(jīng)典案例,就是獲取累計(jì)金額,比SUM函數(shù)看起來(lái)還簡(jiǎn)單。
Step 02 在A1輸入下面的公式,并向下復(fù)制填充公式,得到包含工作簿名稱的目錄。
=INDEX(目錄,ROW(A1))
超出部分顯示#REF!這種錯(cuò)誤,顯然不美觀,公式稍作改動(dòng),讓錯(cuò)誤值顯示空。
=IFERROR(INDEX(目錄,ROW(A1)),"")
Step 03 去掉工作薄名稱,在B1輸入下面的公式,并向下復(fù)制填充公式。
=IF(A1="","",MID(A1,FIND("]",A1)+1,99))
利用FIND函數(shù)獲取“] ”的位置+1位,也就是工作表名的起始位置,MID函數(shù)從工作表名的起始位置提取99位。99是一個(gè)比較大的字符,就是保證能夠比工作表名的長(zhǎng)度還長(zhǎng),這樣可以獲取整個(gè)工作表名。
現(xiàn)在目錄出來(lái)了,如果再進(jìn)行超級(jí)鏈接就更完美,以后只需單擊工作表名稱就可以鏈接到相應(yīng)的表格。
Step 04 在C1輸入下面的公式,并向下復(fù)制填充公式,并隱藏A列,字體稍微調(diào)整下。
=IF(B1="","",HYPERLINK("#"&B1&"!A1",">>>單擊打開<<<"))
用多條公式看起來(lái)比較明朗而已,如果水平好只需兩步就可以做到,首先定義一個(gè)叫“目錄”的名稱,INDEX函數(shù)放在名稱中為了后期縮短字符用。
=INDEX(GET.WORKBOOK(1),ROW(D1))&T(NOW())
定義名稱后在E1輸入公式,并向下復(fù)制。
=IFERROR(HYPERLINK(目錄&"!A1",MID(目錄,FIND("]",目錄)+1,99)),"")
這個(gè)GET.WORKBOOK函數(shù)有38種用法,只需將1改成2-38任意一種即可,有興趣的朋友可以逐一測(cè)試,看得到什么內(nèi)容?
最后強(qiáng)調(diào)一點(diǎn),宏表函數(shù)的后綴跟普通表格不一樣,需要將表格保存另存為:Excel 啟用宏的工作簿(*.xlsm)。
同時(shí)需要在“開發(fā)工具”中將宏的安全性設(shè)置為啟用所有宏,否則宏表函數(shù)不能使用。
宏表函數(shù)本質(zhì)也是函數(shù),只是多了一步定義名稱而已,別把它想得太復(fù)雜。其實(shí)普通函數(shù)也可以通過(guò)定義名稱,讓公式更容易解讀。
推薦:都有了,你要的Excel一級(jí)、二級(jí)、三級(jí)下拉菜單制作教程都有了!
上篇:老板頭腦能自動(dòng)換算,可憐了做表格的我。。。
關(guān)于宏表函數(shù)還有什么疑問?
作者:盧子,清華暢銷書作者,《Excel效率手冊(cè) 早做完,不加班》系列叢書創(chuàng)始人,個(gè)人公眾號(hào):Excel不加班(ID:Excelbujiaban)
聯(lián)系客服