前面我們介紹了Table的使用。今天我們來介紹結構化引用
結構化引用介紹
使用了表之后,公式中引用單元格時就會發(fā)生變化,這種新的引用方式叫做“結構化引用”。
我們先來直觀感受一下結構化引用。在一個“Tabel”右側相鄰的單元格中,輸入“=sum(”,然后點擊“Table”中任意單元格,會得到如下的公式(在2007中,公式稍有不同):
=SUM(表1[@銷售額])
公式不再是=sum(E3)這樣的形式,這里:
“表1”:代表“Tabel”的名字
[銷售額]: 代表列的名字
@代表這一行(公式所在的同一行)
所以這一個公式的意思非常直截了當:對“表1”的“銷售額”列求和
注:我們使用的表,可以參見下圖
結構化引用詳解
一個結構化引用是指上面的例子中sum函數(shù)的括號中的內容(本來這個地方是寫單元格區(qū)域的)。這個引用有幾部分組成:
表1[@銷售額]
1. 表名,在這里叫做表1
2. [],界定符,指明引用的范圍和方式
3. 列名,例子當中的”銷售額”
4. @,表示引用的項目,@標識當前行。
#全部 表示整個表,包括標題行,數(shù)據(jù)區(qū)域,匯總行
#數(shù)據(jù) 表示數(shù)據(jù)區(qū)域
#標題 表示標題行
#匯總 表示匯總行
@ 表示本行
表1[客戶]
表示整個表1的客戶列(只包含數(shù)據(jù)部分,不含標題行和匯總行。你可以使用公式:counta(表1[客戶]),結果就是客戶列中的數(shù)據(jù)個數(shù)。使用公式:index(表1[客戶],1,0),結果就是返回表中的第一個客戶名稱
表1[[#全部],[客戶]]
與上面類似,不過表示的是客戶數(shù)據(jù)部分加上標題行,使用公式:counta(表1[[#全部],[客戶]]),結果就是客戶個數(shù)+1;使用公式index(表1[[#全部],[客戶]],1,0),返回的是該列的標題。
表1[[#數(shù)據(jù)],[客戶]]
與表1[客戶]結果相同
表1[[#匯總],[銷售額]]
引用銷售額的匯總。要說明的是,這里的匯總指的是表1的匯總行,如果該表格沒有匯總行,引用會返回#REF錯誤。如果有匯總行,你可以直接使用公式=表1[[#匯總],[銷售額]],結果與sum(表1[銷售額])相同
表1[[#標題],[銷售額]]
引用銷售額的標題行。直接使用公式=表1[[#標題],[銷售額]],返回銷售額列的列名
表1[#標題]
引用表1的標題行區(qū)域,使用公式counta(表1[#標題]),結果就是表1的列的個數(shù)。公式index(表1[#標題],0,2),結果就是第二列的標題
表1[#全部]
引用表1的整個區(qū)域
表1[#數(shù)據(jù)]
引用表1的數(shù)據(jù)區(qū)域(除了標題行和匯總行的部分)
表1[#匯總]
引用表1的匯總行(如果有的話)
表1[[#數(shù)據(jù)],[客戶]:[銷售額]]
引用表1從客戶列到銷售額列之間的所有數(shù)據(jù)區(qū)域
注:
1. 你可能已經發(fā)現(xiàn),#全部,#標題,#數(shù)據(jù),#匯總都可以省略,這時就表示相應的數(shù)據(jù)區(qū)域。
相對引用和絕對引用的變化
在表格區(qū)域外,找一個單元格,寫公式:
=sum([銷售額])
然后試著左右拖動鼠標講這個單元格公式填充到左右相鄰的單元格區(qū)域,你會發(fā)現(xiàn)引用的區(qū)域變了,效果跟單元格引用中的相對引用類似。多試驗幾次,可以總結如下的規(guī)律
1. 相對引用只發(fā)生在鼠標拖拽填充時,復制/粘貼時不影響
2. 相對引用只發(fā)生在鼠標左右拖拽填充時,上下拖拽填充不影響
3. 如果應用的是表格“Table”中最右邊一列時,繼續(xù)向右拖拽填充,引用會變成第一列
盡管與引用單元格時相比,填充單元格公式時已經方便了非常多,但是,我們還是需要在某些時候左右鼠標拖拽填充時能夠絕對引用。
這時,我們就需要采用這種方式來引用相應區(qū)域:
表1[[銷售額]:[銷售額]]
總結
與單元格引用相比,結構化引用對公式的可讀性來說,會帶來非常明顯的改進,在后期公式維護方面(考慮到其他人讀你的公式)就更是具有非常大的優(yōu)點。而且,由于表格區(qū)域是自動擴展的,也會極大的減輕了對公式進行后期修改的需要,所以,建議大家都來學習結構化引用,很可能會為你帶來意外的驚喜。
而且,這種引用的書寫非常簡單,只要你寫出了表的名字,Excel會自動出現(xiàn)相應的提示。
取得本文模板文件的方式:
聯(lián)系客服