EXCEL單元格的引用包括相對(duì)引用,、絕對(duì)引用和混合引用三種,。
相對(duì)引用 公式中的相對(duì)單元格引用(例如 A1)是基于包含公式和單元格引用的單元格的相對(duì)位置。如果公式所在單元格的位置改變,,引用也隨之改變,。如果多行或多列地復(fù)制公式,引用會(huì)自動(dòng)調(diào)整,。默認(rèn)情況下,,新公式使用相對(duì)引用,。例如,,如果將單元格 B2 中的相對(duì)引用復(fù)制到單元格 B3,將自動(dòng)從 =A1 調(diào)整到 =A2,。 絕對(duì)引用 單元格中的絕對(duì)單元格引用(例如 $A$1)總是在指定位置引用單元格,。如果公式所在單元格的位置改變,絕對(duì)引用保持不變,。如果多行或多列地復(fù)制公式,,絕對(duì)引用將不作調(diào)整。默認(rèn)情況下,,新公式使用相對(duì)引用,,需要將它們轉(zhuǎn)換為絕對(duì)引用。例如,,如果將單元格 B2 中的絕對(duì)引用復(fù)制到單元格 B3,,則在兩個(gè)單元格中一樣,都是 $A$1,。 混合引用 混合引用具有絕對(duì)列和相對(duì)行,,或是絕對(duì)行和相對(duì)列,。絕對(duì)引用列采用 $A1、$B1 等形式,。絕對(duì)引用行采用 A$1,、B$1 等形式。如果公式所在單元格的位置改變,,則相對(duì)引用改變,,而絕對(duì)引用不變。如果多行或多列地復(fù)制公式,,相對(duì)引用自動(dòng)調(diào)整,,而絕對(duì)引用不作調(diào)整。例如,,如果將一個(gè)混合引用從 A2 復(fù)制到 B3,,它將從 =A$1 調(diào)整到 =B$1。 在Excel中輸入公式時(shí),,只要正確使用F4鍵,,就能簡(jiǎn)單地對(duì)單元格的相對(duì)引用和絕對(duì)引用進(jìn)行切換。現(xiàn)舉例說明,。 對(duì)于某單元格所輸入的公式為“=SUM(B4:B8)”,。 選中整個(gè)公式,按下F4鍵,,該公式內(nèi)容變?yōu)?#8220;=SUM($B$4:$B$8)”,,表示對(duì)橫、縱行單元格均進(jìn)行絕對(duì)引用,。 第二次按下F4鍵,,公式內(nèi)容又變?yōu)?#8220;=SUM(B$4:B$8)”,表示對(duì)橫行進(jìn)行絕對(duì)引用,,縱行相對(duì)引用,。 第三次按下F4鍵,公式則變?yōu)?#8220;=SUM($B4:$B8)”,,表示對(duì)橫行進(jìn)行相對(duì)引用,,對(duì)縱行進(jìn)行絕對(duì)引用。 第四次按下F4鍵時(shí),,公式變回到初始狀態(tài)“=SUM(B4:B8)”,,即對(duì)橫行縱行的單元格均進(jìn)行相對(duì)引用。 需要說明的一點(diǎn)是,,F(xiàn)4鍵的切換功能只對(duì)所選中的公式段有作用,。 Excel中對(duì)交叉內(nèi)容進(jìn)行報(bào)表合并 在學(xué)校的成績(jī)統(tǒng)計(jì)中,有的老師會(huì)遇到這樣的問題:比如說手頭有兩份成績(jī)報(bào)表,一份是語文成績(jī),,另一份是數(shù)學(xué)成績(jī),,現(xiàn)在需要將這兩份成績(jī)報(bào)表合并起來,并計(jì)算出總分,。本來這在Excel中是非常容易實(shí)現(xiàn)的事情,,但這還不算,最大的困難在于這兩份成績(jī)報(bào)表中的學(xué)生情況并不一致,,即有一部分學(xué)生只有單科成績(jī),,這樣一來,兩份成績(jī)報(bào)表中的學(xué)生名單就出現(xiàn)了交叉(既有相 同部分,,又有不同部分),。對(duì)于這種問題,我們應(yīng)該怎樣解決呢,? 有的人可能會(huì)想到用VBA寫一段代碼來完成這樣的工作,,但畢竟這東東不是每個(gè)人都會(huì)的,單為了這么點(diǎn)小事情去專門學(xué)習(xí)VBA,,又顯得有些小題大做了,。況且這擺在眼前的工作,哪里來得及等你去學(xué)習(xí)VBA,。(等你學(xué)好了,,估計(jì)也要下崗了!)其實(shí),,會(huì)者不難,,只要你能靈活運(yùn)用Excel中的函數(shù)與公式,這個(gè)問題也是能被輕松解決的,。 在介紹筆者的具體方案之前,,請(qǐng)大家先耐心來進(jìn)行一些有關(guān)此方案的Excel函數(shù)及公式知識(shí)的準(zhǔn)備工作。(先別急嘛,,所謂磨刀不誤砍柴功?。? 首先我們要來學(xué)習(xí)的是Excel中的COUNTIF函數(shù),。COUNTIF (range,criteria) 函數(shù)的功能是計(jì)算給定區(qū)域內(nèi)滿足特定條件的單元格的數(shù)目,。Range 參數(shù)是需要計(jì)算其中滿足條件的單元格數(shù)目的單元格區(qū)域。而Criteria參數(shù)則用以確定哪些單元格將被計(jì)算在內(nèi)的條件,,其形式可以為數(shù)字,、表達(dá)式或文本。假設(shè) A1:A5 中的內(nèi)容分別為 “張三”,、“李四”,、“王五”、“張三”、“張三”,,則COUNTIF (A1:A5," 張三") 等于3,。 接下來上場(chǎng)的是筆者最鐘情的VLOOKUP函數(shù),它在筆者的工作中無數(shù)次發(fā)揮了巨大的威力,,其作用可能僅次于IF和SUM函數(shù),,所以筆者在此向大家吐血推薦?。ㄗ鲝V告?)VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)函數(shù)的功能是在表格或數(shù)值數(shù)組的首列查找指定的數(shù)值,,并由此返回表格或數(shù)組當(dāng)前行中指定列處的數(shù)值。Lookup_value參數(shù)為需要在數(shù)據(jù)表第一列中查找的數(shù)值,。Table_array 參數(shù)為需要在其中查找數(shù)據(jù)的數(shù)據(jù)表,,可以使用對(duì)區(qū)域或區(qū)域名稱的引用,例如數(shù)據(jù)庫或數(shù)據(jù)清單,。Col_index_num 參數(shù)為 table_array 中待返回的匹配值的列序號(hào),。Col_index_num 為 1 時(shí),返回 table_array 第一列中的數(shù)值,;col_index_num 為 2,,返回 table_array 第二列中的數(shù)值,以此類推,。最后一個(gè)參數(shù)Range_lookup為一邏輯值,,指明函數(shù) VLOOKUP 返回時(shí)是精確匹配還是近似匹配。當(dāng)其值為0時(shí),,將返回精確值,;當(dāng)其值為1時(shí),將返回近似匹配值,。關(guān)于VLOOKUP函數(shù),,在Excel的幫助文件中有非常詳細(xì)的解釋,本文限于篇幅的原因不能在此講得更多,,大家有興趣的話可以自己進(jìn)行學(xué)習(xí),。 另外在下面的方案中還將用到一些別的函數(shù),如IF,、ISNA等,,就不單獨(dú)介紹了,筆者將在介紹方案時(shí)一并向大家講解,。最后我們要了解的是關(guān)于Excel公式中絕對(duì)引用和相對(duì)引用的概念,。相對(duì)引用是指公式中對(duì)單元格或單元格區(qū)域的引用僅僅是相對(duì)于包含公式的單元格的相對(duì)位置。引用的源單元格或單元格區(qū)域會(huì)隨著公式所在單元格的改變而改變,。例如A1單元格包含公式 =B1,,當(dāng)我們把A1的公式復(fù)制到A2后,,則A2單元格包含公式 =B2,B1自動(dòng)被調(diào)整為B2了,。這一點(diǎn)在大量復(fù)制公式時(shí)特別有用,,因此也是Excel公式的默認(rèn)引用方式。絕對(duì)引用與相對(duì)引用恰恰相反,,無論公式所在單元格怎么變動(dòng),,引用的源單元格或單元格區(qū)域也不會(huì)發(fā)生任何改變。絕對(duì)引用的標(biāo)識(shí)符是美元符號(hào)“$”,。 好了,,下面就來正式介紹此問題的解決方案了:假設(shè)已有工作簿文件“成績(jī)單”,其工作表“語文”和“數(shù)學(xué)”分別是前文所說的兩份成績(jī)報(bào)表,。 新建一工作表,,將其命名為“索引”,在A1,、B1單元格中分別輸入“索引”和“姓名”,。選擇“語文”工作表,將其中的學(xué)生姓名字段的所有內(nèi)容全部復(fù)制到“索引”工作表中B列,,接著再復(fù)制“數(shù)學(xué)”工作表的同樣內(nèi)容,。復(fù)制完成后稍作檢查,要保證“索引”工作表中B列的數(shù)據(jù)區(qū)域中不要有空單元格,,否則會(huì)影響后面的公式,。(當(dāng)然,將公式設(shè)置得更為復(fù)雜的話,,也可以忽略空單元格,,但這個(gè)就請(qǐng)各位自己去摸索了) 假設(shè)最后一個(gè)學(xué)生姓名在單元格B24,下面我們來為這些包含重復(fù)內(nèi)容的學(xué)生姓名數(shù)據(jù)建立索引,,以過濾掉重復(fù)內(nèi)容,。先在A2單元格中輸入數(shù)字“1”,然后再在A3單元格中輸入公式“=IF(COUNTIF(B3:$B$24,B3)>1,A2,1+A2)”,。這個(gè)公式的含義是如果在單元格區(qū)域B3:B24中,,單元格B3中的學(xué)生姓名的出現(xiàn)次數(shù)大于1的話,就返回A2——也就是公式所在單元格的上一個(gè)單元格的值,,注意這里使用的是相對(duì)引用,,此時(shí)即返回?cái)?shù)值1;如果單元格B3中的學(xué)生姓名的出現(xiàn)次數(shù)不大于1的話,,就返回另一個(gè)數(shù)值,,該數(shù)值等于A2的值加上1,。在表示單元格區(qū)域B3:B24時(shí),,筆者在標(biāo)識(shí)該區(qū)域的結(jié)束單元格時(shí)用到了絕對(duì)引用,,雖然實(shí)際上單元格B24后面已經(jīng)沒有任何數(shù)據(jù)了,但這樣做一來是為了強(qiáng)調(diào)在編輯公式時(shí)需要養(yǎng)成良好的習(xí)慣,,二來是為了與同一公式中的其它相對(duì)引用進(jìn)行對(duì)比,。絕對(duì)引用保證了COUNTIF函數(shù)不會(huì)超出指定范圍,而相對(duì)引用又保證COUNTIF函數(shù)進(jìn)行判斷的條件每次都不同,,且進(jìn)行統(tǒng)計(jì)的范圍每次都在縮小,,如此才能避免對(duì)判斷過的單元格進(jìn)行重復(fù)統(tǒng)計(jì)。最后我們將單元格A3的公式向下進(jìn)行拖曳到單元格A24,,以進(jìn)行公式的快速復(fù)制,。這樣,索引過程就完成了,。結(jié)果如圖一所示,。 有朋友可能要問了“有沒有搞錯(cuò),索引值怎么會(huì)有這么多相同的,?”實(shí)際上,,這個(gè)索引值是專門配合后面的VLOOKUP函數(shù)來使用的,光靠這個(gè)數(shù)字是沒有用的,。不過我還是可以告訴你,,相同的索引值中,第一次出現(xiàn)的為有效索引值,。 再新建一工作表,,將其命名為“匯總”。在A1,、B1,、C1、D1,、E1單元格中分別輸入“索引”,、“姓名”、“語文”,、“數(shù)學(xué)”,、“總分”。在A2單元格中輸入數(shù)字1,,然后向下拖曳到單元格A25,,得到從1到24的序列數(shù)。在B2單元格中輸入公式“=VLOOKUP(A2,索引!$A$2:$B$24,2,0)”,,參照前文對(duì)VLOOKUP函數(shù)的介紹,,我們可以知道此公式的功能在于根據(jù)A列相應(yīng)單元格的數(shù)值,在“索引”工作表指定區(qū)域中找到對(duì)應(yīng)的數(shù)值,,返回給當(dāng)前的單元格,。Lookup_value參數(shù)和Table_array 參數(shù)分別運(yùn)用了相對(duì)引用和絕對(duì)引用,,都是為了復(fù)制公式的需要。在此,,我們還利用了VLOOKUP函數(shù)的另一個(gè)特性,,即如果Table_array 中有多個(gè)值與Lookup_value對(duì)應(yīng),則函數(shù)僅響應(yīng)第一個(gè)出現(xiàn)的值?,F(xiàn)在明白為什么“索引”工作表中有多個(gè)重復(fù)值也沒關(guān)系了吧,! 然后在C2和D2中分別輸入公式“=IF(ISNA(VLOOKUP(B2,語文!$A$2:$B$13,2,0)),0,VLOOKUP(B2,語文!$A$2:$B$13,2,0))”、“=IF(ISNA(VLOOKUP(B2,數(shù)學(xué)!$A$2:$B$13,2,0)),0,VLOOKUP(B2,數(shù)學(xué)!$A$2:$B$13,2,0))”,,用于根據(jù)B列中的學(xué)生姓名從“語文”和“數(shù)學(xué)”工作表中取得他們相應(yīng)的成績(jī),。ISNA()是用來判斷VLOOKUP()的值是否有效的函數(shù),即如果VLOOKUP()找不到相應(yīng)的成績(jī)時(shí),,ISNA()返回TRUE,。再結(jié)合IF(),此公式的完整含義為如果相應(yīng)的學(xué)生有對(duì)應(yīng)的成績(jī),,則返回他的成績(jī),,否則為0。因?yàn)橛性S多學(xué)生只有單科成績(jī),,所以這樣的判斷還是必要的,,否則當(dāng)VLOOKUP()找不到對(duì)應(yīng)的成績(jī)時(shí),會(huì)返回值“#N/A”,,不但難看,,而且影響后面總分的計(jì)算。 在E1單元格中輸入公式“=C2+D2”就能得到總分,,這個(gè)公式應(yīng)該沒什么好說的吧,! 最后,同時(shí)選中C1,、D1,、E1單元格并往下進(jìn)行拖曳以復(fù)制公式。怎么樣,,全都算好了吧,!學(xué)生一個(gè)不多也一個(gè)不少,剛剛好,,而且他們的成績(jī)也一分不差,,是不是很容易!見圖二所示,。 好了,,現(xiàn)在再回過頭去理解一下方案中所有的公式,應(yīng)該都是非常簡(jiǎn)單了的吧,!按照本文的思路,,如果出現(xiàn)類似的問題,,相信也難不倒你啦! 單元格的絕對(duì)引用:是指公式的計(jì)算結(jié)果不隨著存放結(jié)果的單元格的變化而變化,。 相對(duì)引用:則是指公式的計(jì)算結(jié)果隨著存放結(jié)果的單元格的變化而變化,。 例如:在A3單元格有一個(gè)公式為=A1+A2,,將此公式復(fù)制到B4單元格,,因?yàn)槭窍鄬?duì)引用,它的公式變?yōu)?B2+B3,,即存放結(jié)果的單元格由A3變?yōu)锽4,,行和列都加了1,那么公式的A1和A2的行和列也加1,,變?yōu)榱薆2和B3,。 如果是在A3單元格有這樣一個(gè)公式為=$A$1+$A$2,即絕對(duì)引用了,,那么將此公式復(fù)制到B4單元格,,因?yàn)槭墙^對(duì)引用,它的公式仍然是=$A$1+$A$2,,不會(huì)變,。 仔細(xì)看看一樓的回答,說得很清楚了 |
|