|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 Bodhidharma 于 2013-9-11 18:13 编辑
天地有雪 发表于 2013-9-11 15:09
问一下,同样有降维效果的N(),为什么就不行了呢?
N可以「降維」的說法,其實並不精確,這點草板有過精彩的解說:
http://club.excelhome.net/thread-494347-1-1.html
http://www.exceltip.net/thread-17204-1-1-2.html
N是一個很神奇的函數,很多人都對他有所誤解,以下稍做解釋:(這裡A1=1,A2=2,A3=3)
閱讀時請注意「引用」及「數組」的差異,另外回傳值{1}和1也是不同的,這點多數人通常會忽略掉
公式 | 回傳值 | 說明 | N(A1) | 1 | 取引用最左上的值 | N(A1:A3) | 1 | 取引用最左上的值 | N({1;2;3}) | {1;2;3} | 當N的參數為數組時,會分開計算 | N(VALUE(A1:A3)) | {1;2;3} | 數組公式,VALUE將A1:A3這個「引用」轉換為{1;2;3}的「數組」 | N({1}) | {1} | 當N的參數為數組時,會回傳數組 | N(ROW(A1)) | {1} | ROW(A1)返回的是數組{1} | N(OFFSET(A1,0,)) | 1 | OFFSET(A1,0,)回傳A1 | N(OFFSET(A1,,,3,)) | 1 | OFFSET(A1,0,,,3,)回傳A1:A3 | N(OFFSET(A1,{0},)) | {1} | 當OFFSET的參數為數組時,就已經是多維引用,可視為回傳{A1}這個「天上的」引用(或著說是以引用為元素的「區域數組」),N支持多維引用,故仍返回最左上方的值 | N(OFFSET(A1,{0},,{3})) | {1} | 同上,OFFSET回傳{A1:A3} | N(OFFSET(A1,{0;1;2},)) | {1;2;3} | 同上,OFFSET回傳{A1;A2;A3},這個是一般人「降維 」說法的來源 | N(OFFSET(A1,{0;1;2},,3,)) | {1;2;3} | OFFSET回傳{A1:A3;A2:A4;A3:A5},N取各引用最左上的值 | N(OFFSET(A1,,,{1;2;3},)) | {1;1;1} | OFFSET回傳{A1;A1:A2;A1:A3},N取各引用最左上的值 |
之所以用N不行,是因為當OFFSET的參數為數組時,就已經是多維引用,而N(ROW(A1))回傳的仍是數組
至於OFFSET和IF(1...)的關係,這又是一個非常複雜的議題,有空的話再解釋
(可以參考http://club.excelhome.net/thread-709510-1-1.html,不過胡板沒有另外說明,因此大多數人應該都看不太懂)
至於N用在一些多單元格數組公式的時候,就會變的更加複雜,已經超出我的能力
比方說http://club.excelhome.net/thread-781636-1-1.html我就無法清楚解釋
另外N(IF(1...))這個特殊用法的原理,我也無法清楚解釋…
http://club.excelhome.net/thread-681243-1-1.html
http://club.excelhome.net/thread-987388-1-1.html
以上是我的理解,未必完全正確,歡迎大家繼續討論
N_explanation.rar
(6.6 KB, 下载次数: 112)
|
评分
-
2
查看全部评分
-
|