- 帖子
- 2025
- 主題
- 13
- 精華
- 0
- 積分
- 2053
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- Office2007
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 台北市
- 註冊時間
- 2011-3-2
- 最後登錄
- 2024-3-14
     
|
回復 2# morris_lth
回復 1# morris_lth
我測出部分功能
1.SMALL(IF($A$2:$A$25=$G$1, ROW(A2:A25),65536),ROW(3:3)))
==>這段依舊不解,經過實測,若是FALSE則結果=65536.
但我的理解是若為FALSE 程式應該要變成這樣SMALL(65536,ROW(3:3)) , 但這不符合語法 SMALL(array,k)....
2.另外程式中為何要用65536 能順便解釋嗎?
==>如果沒尋到資料則就是傳回D65536的內容,若改成100,則是沒找到就會丟出D100內的資料
3.若是前一次搜尋G3~G5有輸出資料,後一次搜尋只有一筆資料G3, G4/G5是如何做到把舊資料清除?
==>呈上也正是因為這樣可以把多餘的資料清除
回覆1
4^8 = 65536 ,2007版以前的版本最後一列為 65536,一般假設你不會用到第65536列,當不符合資料時將資料指標指向第65536列,這樣公式就會取到空白欄資料。
回覆1
SMALL(IF($A$2:$A$25=$G$1, ROW(A2:A25),65536),ROW(3:3))) 這陣列資料判斷
==>SMALL(65536,ROW(3:3)) 這單筆資料判斷,不是上述公式的執行過程
==>SMALL({.....65536......},ROW(3:3)) , {.....65536......}表示有24筆經過IF判斷,符合時為該列碼 2...25,不符合時為65536
最後用 SMALL 取 ROW(3:3) 取第3小的列號。
回覆3
SMALL(IF($A$2:$A$25=$G$1, ROW(A2:A25),65536),ROW(3:3)))
考慮只有一筆符合時公式改為
=IFERROR(SMALL(IF($A$2:$A$25=$G$1, ROW(A2:A25)),ROW(3:3))),"")
適用於 EXCEL2007板以上 |
|