大家好,我們又見面了,最近有很多學生和網友都問我一個問題:
為什麼你講的Excel跟別人不同?好多書都是花大篇幅的來介紹Excel的快速處理數據操作方法和技巧?而你講的大部分都講函數原理和功能製作過程呢?
的確,我也是經過對比才發現答案,原來我們思考的角度不同,大部分書或網絡文章,他們的出發點,操作者都是自己,而我出發點,操作者是他人,其實也就是操作員和開發工程師的區別,至於你更喜歡什麼,就是你的偏好了,
好了我們閒言少敘,言歸正傳,今天文接前篇《什麼,自定義單元格名稱規則你全知道?這有基礎規則,了解一下!》,接著介紹名稱的用法。
在創建定義名稱的過程中,一直隱藏著使用名稱的關鍵竅門,這個竅門並不難找,就是在名稱定義中起到關鍵作用的設置,沒錯,你猜對了,就是引用位置(S)。
引用位置大致可以分為三類,它可以是引用地址,它可以是公式,也可以是名稱,只要熟練掌握這三類用法,那麼使用名稱就成了手到擒來的事。
下面我就以三種類型為例,逐一剖析一下名稱的用法技巧。
01引用地址
在Excel中的引用地址,共有3類,分為絕對引用,相對引用,混合引用;
在A1引用模式下,說到絕對引用,不得不說:$絕對引用符,而它的存在決定了屬於哪一種引用?
同時出現列標行號前,則為絕對引用,如$A$1;只出現在列標或行號前,則為混合引用,$A1,A$1;不出現則為相對引用,A1;不過在創建名稱時,默認選擇的引用地址是絕對地址,多數用於常量,比如某些公式的係數,固定的引用範圍,項目的配置項等;
絕對引用:
例如,根據員工的基本工資,計算出養老,醫療,失業保險的個人承擔的部分?
要計算個人的部分,並不複雜,首先要知道個人承擔的對應比例,養老,醫療,失業分別為基本工資的8%,2%,0.5%;(註:基本工資為企業上五險的基數,並非真實工資)
常見的做法,定義3個名稱來存儲3個數值,操作步驟如下:
1.任選一個單元格,ctrl+t,彈出創建表窗口,勾選表包含標題(M),點確定;2.ctrl+f3,調出名稱管理器,點擊新建:pens,引用位置輸入0.08,點擊確定;3.重複新建過程,新建醫療,失業,unem,medical,引用位置分別為0.02,0.005;關閉任務名稱管理器4.在D2,E2,F2,錄入公式=pens*c2,=unem*c2,=medical*c2;5.選中D2:F2,滑鼠移至F2右下角,變為實心+,雙擊填充公式;
但若你是一個工程師的話,這麼做是要扣工資的,其實工程師的做法並不複雜,只需做如下修改:
1.創建一個init工作表,A1:C1,分別錄入:養老比例,醫療比例,失業比例;2.A2:C2,分別錄入0.08,0.02,0.005;3.ctrl+f3,調出名稱管理器,修改pens,unem,medical應用位置為:=init!$A$2, =init!$B$2, =init!$C$2;
這樣做的好處就是,下次只需簡單修改,就能實現使用新比例,數據會自動更新結果。即使你不在,修改時,而你需要做的就是,告訴他,修改對應表格數據就行了。
可能有人可能要說了,還工程師呢?這要是有十個配置項,豈不是要用10個名稱嗎?太麻煩了!
確實,因為絕對引用使得名稱的值變唯一了,若改變這種情況,就需要解除部分鎖定即:
混合引用
哪麼問題來了,混合引用會以什麼作為參考標準呢?名稱的引用位置和使用名稱單元格的又是怎麼個對應關係呢?
第1問:不管名稱的引用位置是混合引用,還是後面要說的相對引用,其實參考的點就是創建名稱時,當前選中的單元格,說白了,這個單元格就是參考點;至於對應的關係:一旦名稱創建完成,選擇單元格與創建名稱錄入的引用地址就會生成固定相對位置映射關係。為了便於理解,還是看回本例,init的數據只在A2:C2,對應使用的數據列為表Sheet1的D:F,
即D列對應A2,E列對應B2,F列對應C2;
因為不管是D列,還是E列,還是F列使用的數據始終都在init表第2行,所以行號應鎖定,列號則應該隨著使用單元格列變化而變化。哪麼問題來了,用混合引用解決這個問題,要用幾個名稱呢?
不多,一個就行,不過創建時,需要注意選中單元格位置,由於需鎖定行號,所以只需在意列的位置,具體操作步驟如下:
1.在init工作表,選中D列任一單元格,點擊【公式】下的【定義名稱】按鈕,彈出窗口,錄入名稱,ratio,引用位置是當前選中單元格絕對引用,只需修改為=A$2,確定;2.在Sheet1中,D2,錄入公式=$C2*ratio,先橫拖拽填充至F2,後滑鼠移至F2右下角,變實心+,雙擊完成公式填充。
注:錄入引用位置時,工作表名稱可省略,名稱創建完成,系統會自動追加當前工作表名稱。
其實在創建名稱時,方法並不唯一,因為行號鎖定,只需確保選中單元格與名稱引用位置的列標相差為2即可。
說到這,有一點,你需要注意的是,固定映射關係跟在哪個工作表無關,只與兩者的相對位置有關;
知道這些之後,我們如果對行和列都取消鎖定,用一個名稱代表一個表格的數據區域,就可以玩轉相同結構多表格求和
相對引用:
試想一下,如果我們採用正確的映射關係,然後定義成名稱,就能通過名稱玩轉相同結構表格中的任意單元格求和。
現有一個連鎖店的6個月份銷售情況,具體數據結構如下:
要求對1到6月的各項求和?
由於結構相同,之前文章,我曾講過用sum解決過這類問題,這裡做個小複習,簡單回顧一下SUM的解決步驟:
1.點擊新建工作表按鈕,創建匯總表,A1:C1,錄入:分店,銷量匯總,銷售額匯總;2.A2:A8,錄入分店名稱,河西1分店,河西2分店,河東1分店,河東2分店,紅橋1分店,河北1分店,北辰1分店;3.在B2錄入公式=SUM('1月:6月'!B2)或錄入=SUM(,後用滑鼠選1月的B2,後按shift不放,點6月,後回車;4.先滑鼠移至B2的右下角,滑鼠變為實心+,按左鍵拖至C2,後滑鼠移至C2右下教,變+時,雙擊填充公式;
雖然看著文字介紹比較麻煩,其實操作起來,也就1分鐘的事,看著還不錯,哪接下看看用名稱來做,該怎麼操作呢?
1.切換到1月工作表,直接點擊【公式】下【定義名稱】按鈕,調出新建名稱窗口,名稱:Jan,引用位置去掉絕對引用符,確定;2.重複1步驟,2-6月工作表對應的名稱:Feb,Mar,Apr,May,Jun;3.選中B2:C8,直接錄入公式=SUM(Jan,Feb,Mar,Apr,May,Jun),ctrl+enter(回車)
什麼?第2種方法一下子定義這麼多名稱,還不如第1種方法來的直接,簡單呢?
不錯,不過許多方法在普通模式下,效率都差不多,不過一旦上升到模塊化模式下,效率高低就十分明顯了。
如果用到模塊化思想中的:配置優於邏輯,而存儲配置常用的方法,都是用init工作表(約定俗稱)來存儲。
對應本例的操作步驟如下:
1.點擊工具欄的+按鈕,雙擊表籤名或滑鼠右鍵菜單選重命名,改為init;2.在A1:錄入:匯總通用公式,A2,錄入SUM(Jan,Feb,Mar,Apr,May,Jun)或Jan+Feb+Mar+Apr+May+Jun;3.新建名稱為:Calcu,引用位置:=EVALUATE(,選擇A2單元格,點確定;4.重複第2種方法,第3步驟,將公式改為=Calcu,後ctrl+enter
如果遇到需要單獨匯總某幾個月時,你只需修改init!A2中的計算公式就好,數據會自動更新。
而第1種方法,就需要重新編寫計算公式,即便開啟智能表格,每次匯總要求變更,也至少需要修改2個單元格的公式,才能實現。
這麼看來,誰更高效就一目了然了吧!不過,第2種方法並不是萬能,而且只有在滿足以下條件才可使用:
1.結果單元格和求和的數據單元格在數據區域的相對位置必須一致;2.結果單元格和源數據單元格項目順序也必須一致那個第一種方法就不可以優化改進嗎?當然可以,它的終極優化也是通過公式,不過應該叫函數版的通用公式,若把它定義成名稱使用,就是名稱另一類用法,欲知用法如何,請聽下文詳解。
由於篇幅的原因,今天的文章就到這了,如果你通過閱讀,有所收穫,就關注,轉發加點讚,你的鼓勵是創作的源泉。花葉草木深,工作要認真,預想加薪資,關注胖廖晨。