INDIRECT函數的用法你都知道?這是簡單用法了解一下!

2020-12-10 小哥聊經驗

大家好,我是愛聊Excel 小胖子廖晨,今天我們就要說說關於生成動態引用範圍的相關的函數,動態引用範圍其實在我們日常工作還是蠻常見,比如:級聯下拉列表,智能工資條,隨機點名器等都有過它的身影,那麼問題來了,生成動態引用所需要的掌握的函數有哪些?常用的函數有INDIRECT,ADDRESS,OFFSET,我們今天先來了解一個簡單上手快的函數:

INDIRECT函數

功能:將文本字符串輸出成具體單元格或單元格區域的引用

語法結構:INDIRECT(字符串,引用樣式編碼)

字符串:使用一對雙引號」包裹的字符組合,純數字可省略包裹符號;

引用樣式編碼:2組值,TURE/1或FALSE/0,

TURE/1:默認值,可以省略,為A1樣式,系統默認的引用樣式,FALSE/0:R1C1引用樣式,在A1引用樣式下也可以直接使用R1C1引用樣式規則的字符串來輸出成單元格或區域引用的;:字符串必須符合對應引用樣式規則,否則返回#REF!;

通常我們在調用一個單元格A2的數據,都會在目標單元格直接輸入=A2,如果INDIRECT函數實現的話,就會有更多玩法,先從最簡單的方法開始,比如=INDIRECT(「A2」)或=INDIRECT(「A」&2)。

什麼!明明很簡單,不就是第一個公式的事嗎?你卻要搞的這麼複雜?其實你仔細回想一下,我們的學習過程難道不就是一個簡單到複雜,再從複雜到簡單的過程嗎?第一種是簡單,它簡單的就是例子而已,你學會它並不能給你在日後的工作提供任何幫助,而第二個就不同了,它卻是我們日常最常用的原型之一,而且還有個學名叫拼接法。

拼接法

拼接的內容並沒有局限,它可以是函數,字符串,純數字,那麼問題來了,它可以用來做什麼呢?我們通過一個面試題來近距離的接觸一下拼接法吧。

面試題1:現A2:A8上分別為孫策,張飛,李忠,單田芳,梅蘭芳,張紹藍,琳娜,將數據轉置為從單元格C2開始的行存儲數據且增加黑色邊框,請寫出可行的操作方法?(10分)

看到這道題,是不是很多人就覺得這題太簡單了,複製粘貼就能搞定,再設置單元格邊框就行了,於是就寫了如下操作步驟:

選中A2:A8,然後ctrl+c或滑鼠右鍵,彈出菜單選複製命令,選擇C2,ctrl+v,在粘貼選項中,點擊轉置按鈕或直接滑鼠右鍵,彈出的菜單命令中選擇【粘貼選項】中選【轉置】命令選中C2:I2,點擊[開始]菜單下邊框下拉按鈕,選擇[所有框線(A)]

indirect面試題操作步驟示意圖(圖1)

如果你真的就是這麼寫的,不出意外,你也就能得2-3分,哪麼怎麼做才能得更高的分呢?

在名稱欄輸入:C2:Z2回車或滑鼠託選C2:Z2單元格,接著直接輸入=INDIRECT("A"&COLUMN(B2)),然後CTRL+enter,完成公式填充。點擊【開始】菜單下的條件格式,選擇【新建規則】,彈窗內選擇「使用公式確定要設置格式的單元格」,然後在公式輸入=C2<>0,點擊格式,設置為黑色邊框,點擊兩次確定;重複第2步驟,公式中輸入=C2=0,點擊格式,選【數字】選項卡,點擊自定義,在類型中輸入;;;後點擊兩次確定;

indirect面試題解法操作步驟示意圖(2

其實面試中,越簡單的題,越能暴露你的職業素養,表面上看兩種做法都能解決問題,但卻存在著質的區別,第一種做法對工作沒有質減少,只是存在量的變化,只是簡單的機械的使用操作技巧,一但數據有修改,增加或刪除,都需要重複操作,而第二種的做法,對實際工作有著質的減少,即使出現數據修改,增加刪除的操作,不需重複操作,就能自動完成數據的更新和增減,但它也有缺陷就是不能完全避免拓充公式,只能在一定的範圍內減少修改公式的操作,因為過量的填充公式會造成文件的體積增大,打開文件的速度變慢,需要我們做的就是找到填充公式量的平衡點,需要注意的有2點:

平時需要注意總結和匯總數據的變化率是多少,通常我在製作時,填充公式的量一般為整體是的1.2-1.5倍,數據量越大的時候,就越接近1.2;如果修改次數是個位數,還需要結合自己的技術儲備和工作中留給你完成任務的時間,來選擇操作方法,並非絕對的那種方法就是最好的;如果時間充足,知識即便欠缺,可以在網絡中補足,也要儘量嘗試用第2種方法,因為它確實在給以後的工作做減法,減法做的多了,想加班都難啊!

介紹完單個單元格的引用,下面我們看看如何生成一個引用區域,在說用法之前,我們先溫習與引用區域相關的3個引用運算符號:逗號,冒號,空格;

逗號:聯合運算符,可以將多個單元格引用或引用區域合併成一個;比如:A2,C3,D5冒號:範圍運算符,生成兩個單元格之間所有單元格的引用區域;比如:A2:C3空格(單個):交叉運算符,生成兩個引用區域共同包含的引用區域;比如:A2:D5 C3:F9具體詳情可以翻看之前的文章:小白講Excel:表格引用樣式的哪些秘密?你都知道嗎?

哪麼問題來了,我們可以像這樣:=INDIRECT(「A2,C3,D5」),=INDIRECT(「A2:D5 C3:F9」)生成引用區域嗎?要是能這樣用是不是就太方便了!

不過想像總是很美好,現實卻不盡人意啊,因為INDIRECT函數的文本字符串並不能識別逗號空格為引用運算符,所以它直接生成引用區域是一個單元格引用或連續的引用區域,不過你也不用擔心,我們依然有技巧可以完美規避它的這個缺陷,來個面試題剖析一下。

面試題2:一工作表: B2:D2分別為銷售部,營銷部,設計部;B3:B12,C3:C9,D3:D10為各部門的員工,在G2:H2分別為部門,員工;要求製作級聯二級菜單,在G3勾選對應部門,H3勾選對應的員工。(10分)

難點:如何將每個部門對應上所有該部門的員工列表上,即員工名單所在的引用區域,而一個名稱對應引用範圍用什麼呢?沒有錯,就是自定義名稱,解決這個點,剩下就是操作技巧上的事,有的多兩步,少兩步對得分影響不大,也就0.2-0.5分的事。

操作步驟:

選擇G3,點擊[數據]菜單下的驗證,在數據驗證窗口,允許選序列,來源,選擇部門所在的區域或者直接錄入=B2:D2,確定;選中每列有數據的單元格:B2:B12,然後按住CTRL鍵,接著選中C2:C9,D2:D10,,點擊[公式]菜單下的[根據內容創建定義的名稱],彈窗中選擇首行,確定;單獨選中B2:B12;然後CTRL+T,勾選包含標題選項,確定,依法對C2:C9,D2:D10也採用同樣的樣式;CTRL+F3,點擊[新建(N)]按鈕,彈窗中輸入名稱:menu,在引用位置 輸入公式=INDIRECT(G3),點擊確定;選中H3,重複第1步操作,來源錄入=menu,確定;

indirect函數面試題操作示意圖3

可能有人要問,為什麼要做第3步,是不是可以省略呢?當然不行,第3步是用智能表格的功能來實現部門人員增加時,下拉列表也會跟著自動增加,這也是你有編程思想的體現,可是加分項啊,不過這樣也只是能得及格分6-7分,因為通過上面的步驟我們得到並非嚴格意義的級聯菜單,存在以下缺點:

1.智能表格能解決下拉列表自動增加,卻不能解決刪除後列表自動減少,會留下空白選項

2.下拉列表並不是嚴格意義上的級聯下拉菜單,因為2級菜單選擇過選項後,再修改1級菜單,2級菜單依然會保留上次操作的值,並不能實時更新。

第1個缺點可以用通過EVALUATE和OFFSET函數解決,可得8分,至於不論怎麼操作都可以實現級聯變化,就需要通過函數組合的方式創建的下拉菜單(滿分),我會在後面文章中具體揭曉級聯下拉菜單的各類製作方法以及INDIRECT存在的缺陷,通過的上面例子,我們發現可以是用名稱字符串作為INDIRECT函數的參數,就能使用名稱定義的引用範圍,就能彌補不能識別逗號和空格引用符號的不足了。

拼接法最要是的如何生成動態引用字符串,生成同列如「A1:A13」,」D12:D36」等類似的引用字符串比較容易,但在動態生成」A1:H1」這樣的字符串時就會有些吃力,哪有什麼更好的方法來生成這樣的字符串嗎?有人說用R1C1引用樣式,沒錯確實是解決方法之一,但並不是好的解決方法,由於文章篇幅的原因,所有的解決方法和INDIRECT函數其他用法留在下文分解,希望你能從文中有所收穫,也歡迎你留言指正文中不當之處,我會看到後第一時間回復,喜歡我就關注吧,我是一個愛聊Excel的小胖子廖晨。葉草花木深,學習要認真。何以術業精?有事找廖晨。

相關焦點

  • INDIRECT函數用法的那些事?終於湊齊了!
    INDIRECT函數的用法你都知道?這是簡單用法了解一下!其實很簡單,因為寫算法人的工資是只會用函數人工資的最少是2-3倍,在學習的時候,儘量往深了學,學習算法,一些函數的原理並嘗試自己通過簡單函數的組合實現一樣的功能,這樣有助於你形成編程思維,如果在工作中,如果沒有特殊要求,有函數誰不用啊。說完了INDRECT函數在一個工作表中的用法,我們接下來就來看看如何玩轉跨工作表訪問。
  • Indirect函數基本用法【Excel分享】
    大家好,今天和大家分享「Indirect函數基本用法」,許多朋友一見到這個函數就犯暈,確是,對於新手來說,這個函數不好理解,下面我來講講它的基本用法
  • SUMIFS函數多條件求和,你真的會用嗎?這有用法介紹,了解一下!
    SUMIF我在之前文中簡單介紹過,預想詳細了解,可以翻看文章《SUMIF函數的用法技巧,真的都會用?初級用法,了解一下!》。~)N:最多支持127對條件組合;由於求和區域和條件區域必須保證一樣的列數和行數,我們通常將整列作為求和或條件區域的參數,下面就通過例子來近距離了解一下SUMIFS函數的用法有哪些吧!
  • 替換IF函數的3類用法,你知道一切?這有原理,了解一下!
    大家好,我還是那個愛聊Excel的廖晨,前些天,在編寫IF函數的教案時,覺得其中有些可以代替IF函數的用法,還是挺有意思的,就在這裡整理一下,分享給大家。不過在講其它的用法之前,還是得從IF函數的基礎用法說起。
  • INDIRECT這個神秘函數,你不得不了解!
    要了解一個函數,我們還是需要從這個函數的定義出發,所以我們來看一下,INDIRECT函數的意義。DIRECT在英文當中,譯為直接,在前面添加一個前綴【IN】即表示反義,所以INDIRECT即表示間接的意思。INDIRECT函數就是間接引用。
  • 數列在offset和indirect函數中的應用
    要用活函數,用好公式,學會數列的構造是必須要邁過的一道坎!之前也多次解讀過構造數列的一些套路,還沒學過的夥伴可以先去看一下:也有些已經了解數列構造方法的同學們提出疑問,學會這些到底有什麼用?今天就通過幾個例子來體驗一下數列的應用。
  • 逆向查詢中IF函數和數組的用法,你理解嗎?這有原理了解一下!
    最近收到資深粉絲髮來的私信:廖老師,我對於VLOOKUP的逆向查詢中使用IF和數組用法不太理解,您能詳解一下嗎?當然,所以今天就抽時間來扒一下,隱藏在IF函數和數組用法裡的是什麼樣的原理呢?不過在回答問題之前,我還是先來重溫一下IF函數的基本用法。
  • Excel引用函數indirect教程
    原創作者 | 李銳微信公眾號 | Excel函數與公式(ID:ExcelLiRui)個人微信號 | (ID:ExcelLiRui520)關鍵字:indirectExcel引用函數indirect教程Excel中的引用函數indirect應用極其廣泛,很多問題的解決都離不開這個她的神奇助攻
  • INDIRECT的用法太重要了,財務人一定要掌握
    最近幾天用的最比較頻繁的就是indirect這個函數了。這個函數呢我也只是用了五六年,但是最近使用的頻度尤其的高,它是幹什麼麼的,其實可以理解為是一個組合工具,比如我想做一個表,但是數據要從各個sheet中取數,比較小白的辦法就是直接等於某個sheet中的數,或用公式提取比如VLOOKUP等,但是都需要點開需要提取的工作表,但是indirect是可以很完美的解決這個問題,尤其是對於涉及部門、子分公司比較多,或產品品類比較多的數據處理時,用這個函數就很有必要了
  • Excel高手必備函數INDIRECT的神應用
    Excel中的引用函數indirect應用極其廣泛,很多問題的解決都離不開這個她的神奇助攻,在我的印象中,indirect就好比一個既聰明又能幹的小精靈,今天帶你認識她。為了加深理解,咱們在Excel中實際演練一下=INDIRECT(A1)由於A1單元格中的值是B1,所以indirect引用的是B1單元格的值,返回結果5
  • SUMIF函數的用法技巧,真的都會用?初級用法,了解一下!
    求和在Excel中是個聊不完的話題,如果SUM求和是個沒有底線的「求和」,而SUMIF就是有底線的」求和「,有底線歸有底線,但還是繼承了SUM函數的一個特性,就是容錯性,即:非數字單元格,會識別為0進行計算。今天我就來聊聊這個有底線的SUMIF函數的用法。
  • Sum函數的這六個用法你都知道嗎?
    不會用Sum函數?說什麼呢?太小看我了吧!估計很多朋友都會這樣想。耐心看完下面的教程,你會改變你的看法。你還在設置一個SUM公式,然後複製複製嗎?其實只需要按CTRL+G定位空單元格,然後點一下∑即可(或按alt+=)
  • 你真的了解SUM函數的用法嗎?
    SUM函數是求區域內數字列表的總和,相信絕大數初學者都知道怎麼用,太簡單了。可是你知道,SUM函數還有你可能不知道的強大求和功能。 語法 SUM(number1,number2, ...),可以有30個這樣的求和參數。
  • Excel的求和簡單易掌握?這是中級用法,了解一下!
    在回答問題之前,求和的運算符為:+,函數有:SUM,SUMIF,SUMIFS;在Excel中,區別無非就是操作,引用範圍,原理有什麼不同,至於注意什麼,知道了區別,注意什麼不就是手到擒來的事嗎?操作:運算符操作簡單,零基礎,函數需知參數以及相關的參數規則。
  • E圖表述:Indirect函數+名稱管理器,建個小模型
    有的時候,當我們知道了更多的技巧和Excel的知識後,就會發現,不同的知識結合在一起,就可以有很多種表格設計的方案。今天我們來看一下Indirect函數,能給我們帶來什麼樣的效果。   Indirect函數的用法是對文本型字符串進行引用,並返回引用範圍的值。我們來了解一下它在實際工作中的用途。
  • Indirect如何引用多工作表數據,高手都很少知道的2個操作
    工作中我們經常會碰到一種情況就是,需要對不同工作表名稱下的數據進行引用,因為不同工作表名稱會有數字、文本等不同的命名方式,所以今天我們來學習一下工作表引用常用的Indirect函數,深入講解一下這個函數的2種使用方法。
  • Excel跨表查詢:vlookup+indirect函數組合,你都不知道有多強大
    江湖傳聞在excel查找界頗有名氣的vlookup函數即將退休,微軟官方也公布將迎來的是xlookup函數,據說功能也是強大的一批!目測感覺有些用法就是vlookup函數和lookup函數的結合體啊,但在目前形勢來看普及該函數可能還需要一段時間,因為還需要考慮各個excel版本版的兼容性!
  • 這才是Sumif函數的最高級用法
  • EXCEL函數INDEX和MATCH函數的基本用法和高階用法(必看)
    今天給大家更新一下INDEX函數和MATCH函數的基本用法,以及高級用法.
  • Excel必學的sumproduct函數,全部9種用法都在這
    我們在處理日常工作的時候,函數是一個不可缺少的部分,Excel中除了有vlookup等萬能查詢函數,還有我們必須要熟悉的sumproduct函數,它可以實現求和、單一多條件和複雜情況下的各類計數及綜合排名等數據處理,今天我們就來學習一下這個函數的全部9種用法。