INDIRECT函數是根據文本地址來返回引用的一個函數,比如INDIRECT("A1"),"A1"是文本,套INDIRECT后指向的單元格為A1單元格,和INDIRECT(A1)是有區別的,A1和"A1"一定要區分清楚,帶雙引號后的地址,它就是文本地址而非單元格
簡單介紹一下
INDIRECT("A1")返回A1單元格里的值,指向了A1
那么試試INDIRECT(A1),會出現錯誤,這是因為A1單元格里的值,不是一個文本地址,所以引用不到單元格
嘗試將A1單元格里的值改為B1,此時看見INDIRECT(A1)返回了B1里的值,這是因為A1單元格里的值是文本地址"B1",經過INDIRECT的引用,就會返回B1單元格里的值,新手剛學的時候肯定會有一點繞
下面來介紹如何用INDIRECT函數來計算單元格里有多少個英文字母,數據如下,我們知道單元格的文本地址是由字母和數字組成,那么字母單元格里有了,只要把每一個字母給連接一個數字,不就是一個文本地址可以給INDIRECT函數引用了嗎
先用MID函數拆分每一個字符,不知道單元格里有多少個字符,先給到99吧,如果字符個數比99還要長,就把數字給大一點,足夠用就行
再給它連接個數字999,這里的數字不能隨意連接,至少你不能連接一個數字2,因為里面萬一有一個字母"B",你就會引用到B2單元格,而B2單元格是我們公式所在的單元格,就會造成循環引用,所以給一個較為保險的數字999
再套INDIRECT函數,發現都是錯誤值,這是因為需要降維,套一個N函數
套了N函數后,就會有0值出現了,因為第999行都是空,被引用后就會返回0
再用COUNT計數,0也是數字,也就是說有多少個0就會有多少個單元格地址,就會有多少個字母,數組公式按CTRL+SHIFT+ENTER
公式:=COUNT(N(INDIRECT(MId(A2,ROW($1:$99),1)&999)))