本帖最后由 松風(fēng)水月 于 2014-1-16 18:50 編輯 教程簡介:這是一個(gè)使用 vlookup 函數(shù)嵌套 INDIRECT 函數(shù)來實(shí)現(xiàn)跨工作表數(shù)據(jù)引用的教程。
教程附件:
使用 INDIRECT 函數(shù)實(shí)現(xiàn)跨工作表的數(shù)據(jù)引用.xls
(27.5 KB, 下載次數(shù): 285)
一、需求簡介
某小學(xué)決定要抽查本校三年級(jí)三個(gè)班的期末考情況,抽查方法為在每個(gè)班中抽查5名學(xué)生,將這15名學(xué)生的期末考情況匯總到一個(gè)表中考察。
該小學(xué)現(xiàn)已在一個(gè)工作簿中建立《三年1班》、《三年2班》、《三年3班》3張工作表,如圖:
現(xiàn)在每班5名同學(xué)也已抽出,如圖:
現(xiàn)在要做的,就是要在《成績抽查》工作表里面,引用《三年1班》、《三年2班》、《三年3班》3張工作表中被抽查的學(xué)生的成績。應(yīng)該怎么做呢?
二、使用 VLOOKUP 函數(shù)引用數(shù)據(jù)
根據(jù)常規(guī)的做法,我們可以使用 VLOOKUP 函數(shù)實(shí)現(xiàn)數(shù)據(jù)的引用。
我們可以在《成績抽查》工作表 D3 單元格中填寫公式:- =VLOOKUP(A3,三年1班!A3:E17,3,FALSE)
復(fù)制代碼 公式講解:
① VLOOKUP函數(shù),表示搜索一個(gè)或多個(gè)數(shù)據(jù)列。
② 表示將單元格 A3 的值作為搜索內(nèi)容。
③ 表示在工作表《三年1班》單元格 A3:E17 的范圍內(nèi)搜索是否有與單元格 A3 的值相匹配的內(nèi)容。
④ 如果找到了相匹配的值,則返回工作表《三年1班》單元格 A3:E17 第3列的對(duì)應(yīng)內(nèi)容。
⑤ "FALSE",表示查找時(shí)要求完全匹配,而不是模糊匹配。我們把此公式填充到 D4:D17,執(zhí)行結(jié)果如下:
為什么 D8:D17 單元格會(huì)出現(xiàn) "#N/A" 這樣的結(jié)果呢?這是因?yàn)樗檎业臄?shù)據(jù)分散在三個(gè)工作表,而原來的公式只是在《三年1班》這一個(gè)工作表中查找。因?yàn)樵诠ぷ鞅怼度?班》中查找不到2班、3班的學(xué)生,所以公式結(jié)果出錯(cuò)。
那有沒有一個(gè)函數(shù)能和 VLOOKUP 函數(shù)結(jié)合在一起,幫助我們實(shí)現(xiàn)跨工作表的數(shù)據(jù)引用?
有的,那就是 INDIRECT 函數(shù)。
三、使用 INDIRECT 函數(shù),使數(shù)據(jù)引用實(shí)現(xiàn)跨工作表
1、INDIRECT 函數(shù)簡介
我們先來介紹一下 INDIRECT 函數(shù):
INDIRECT 函數(shù)的特點(diǎn),是能將文本字串,轉(zhuǎn)換為可以引用的單元格。例如公式就等價(jià)于:INDIRECT 函數(shù)的這個(gè)特點(diǎn),使得我們可以將 INDIRECT 函數(shù)的第一個(gè)參數(shù)替換為文本函數(shù),再結(jié)合查找引用函數(shù)使用,就能實(shí)現(xiàn)跨工作表的數(shù)據(jù)填充。2、公式修改
我們現(xiàn)在考慮如何修改我們最先列出的那個(gè)公式。其中一個(gè)有效的方法,是把上一個(gè)公式中 "三年1班!A3:E17" 這一部分替換為 "INDIRECT($C3&"!A3:E17")" 。
公式講解:
我們先來看分式①。
分式①是一個(gè)文本函數(shù)。表示將C3單元格和 "!A3:E17" 這個(gè)字符串聯(lián)合起來,組成一個(gè)新字符串。C3單元格中的數(shù)值為 "三年1班" ,和 "!A3:E17" 這個(gè)字符串組合后就成為 "三年1班!A3:E17" 。
所以這個(gè)公式此時(shí)就相當(dāng)于:
而它等價(jià)于:所以我們就得到了我們所需要的單元格的引用。
因此,我們將我們給出的第一個(gè)公式- =VLOOKUP(A3,三年1班!A3:E17,3,FALSE)
復(fù)制代碼 中 "三年1班!A3:E17" 這一部分替換為 "INDIRECT("三年1班!A3:E17")" ,就修改成為如下的新公式:- =VLOOKUP(A3,INDIRECT($C3&"!A3:E17"),3,FALSE)
復(fù)制代碼 我們將這個(gè)公式填充,公式就能根據(jù)C列中所列出的不同班級(jí),在相應(yīng)工作表中查找和引用相關(guān)數(shù)據(jù),這樣顯示結(jié)果就正常了。
四、完成工作表
我們?cè)僭贓3填寫公式:- =VLOOKUP(A3,INDIRECT($C3&"!A3:E17"),4,FALSE)
復(fù)制代碼 在F3填寫公式:- =VLOOKUP(A3,INDIRECT($C3&"!A3:E17"),5,FALSE)
復(fù)制代碼 并填充,最終完成這一個(gè)數(shù)據(jù)表:
------------------------------
補(bǔ)充說明(2014-01-16):
(根據(jù) @chym5516 在第45樓的提問補(bǔ)充。感謝?。?br>
如果工作表名稱中帶有括號(hào),為能正確引用,需要給工作表名稱加上引號(hào)。
以本教程為例,如果3個(gè)班級(jí)的工作表的名稱分別為“三年1班(終稿)”、“三年2班(終稿)”、“三年3班(終稿)”的話,為得出正確的結(jié)果,成績抽查!D3 單元格則需作下面的修改(其他單元格的修改依此類推):
1、將 C3 單元格改為“三年1班(終稿)”
2、將 D3 單元格的公式改為:
- =VLOOKUP(A3,INDIRECT("'"&$C3&"'!A3:E17"),3,FALSE)
復(fù)制代碼 解析:
公式- =INDIRECT("'"&$C3&"'!A3:E17")
復(fù)制代碼 相當(dāng)于:
- =INDIRECT("'三年1班(終稿)'!A3:E17")
復(fù)制代碼 等價(jià)于:
示例文件:
使用 INDIRECT 函數(shù)實(shí)現(xiàn)跨工作表的數(shù)據(jù)引用(工作表名稱帶括號(hào)).xls
(18.5 KB, 下載次數(shù): 82)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。