|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 Bodhidharma 于 2014-4-25 10:54 编辑
danny-fei 发表于 2014-4-25 09:59
请教楼主,用IF我能理解,为什么一定要加上 T 呢?用F9看,有T和没有T返回的结果是一样的呀?
這個很複雜…我試著說明一下
一式
- VLOOKUP(T(IF({1},C19:C21)),$B$2:$C$14,2,)
复制代码
T+IF,使VLOOKUP第一參數可以接受數組形式,因此返回{14;9;12}這個內存數組
二式
- VLOOKUP(C19:C21,$B$2:$C$14,2,)
复制代码 的「一般公式」
這個在顯示結果同上,但是無法形式內存數組
這裡發生的是「隱含交叉」,也就是在第19行輸入的話,就自動變成VLOOKUP(C19,$B$2:$C$14,2,)
在21行輸入,就自動變成VLOOKUP(C21,$B$2:$C$14,2,)
但在第22行輸入的話,因為22和C19:C21無法形成交叉,因此對應不到,返回#VALUE!
關於「隱含交叉」的基本說明,可參考:http://club.excelhome.net/thread-592215-1-1.html
三式
- VLOOKUP(C19:C21,$B$2:$C$14,2,)
复制代码 的「單元格數組公式」
由於VLOOKUP第一參數在一般形況下不接受數組形式,因此用數組輸入的話,C19:C21會自動取最左上的值,也就是C19的值
因此返回的結果都會是VLOOKUP(C19,$B$2:$C$14,2,)的值,也就是14
需注意如果以F9來看的話,結果和二式相同
四式
- VLOOKUP(C19:C21,$B$2:$C$14,2,)
复制代码 的「多單元格數組公式」
這裡發生的是另一種「隱含交叉」
多單元格數組公式各單元格顯示的值,會依其單元格所在位置與「不被支援的數組」一一對應
因此在顯示值上面,雖然是在C20:C22輸入,但是C20會對應到VLOOKUP第一參數的C19、C21對應到C20、C22對應到C21
因此顯示的結果不管在哪裡輸入都會正確,但是需注意一樣無法形成內存數組,F9返回結果和前兩式一樣
這個現象比較少討論到,可以參考:http://club.excelhome.net/forum.php?mod=redirect&goto=findpost&ptid=1065374&pid=7262923
五式
- VLOOKUP({"A004";"A010";"B005"},$B$2:$C$14,2,)
复制代码 的「多單元格數組公式」
這個和四式類似,不過因為沒有使用引用,因此F9就不存在二式中的「引含交叉」情形
在這種情況下,F9返回的會是最左上的值的結果,因此所有的F9結果都會是14
文字說明比較不清楚,可見附件
explanation.rar
(5.77 KB, 下载次数: 125)
|
评分
-
1
查看全部评分
-
|