small, index, row, excel

2010-08-12 12:00 am
small, index, row, excel

=SMALL(IF($A$1:$A$7=$A$10,ROW($A$1:$A$7)),ROW(1:1))

=INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$A$10,ROW($A$1:$A$7)),ROW(1:1)),2)

=IF(ISERROR(INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$A$10,ROW($A$1:$A$7)),ROW(1:1)),2)),"",INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$A$10,ROW($A$1:$A$7)),ROW(1:1)),2))


我想問以上3 equations, 應該點了解?
因為我唔明白eg, ROW($A$1:$A$7)),ROW(1:1)

謝謝

回答 (1)

2010-08-12 7:11 am
✔ 最佳答案
small(if(.....必定是陣列公式, Ctrl + Shift + Enter 三鍵輸入IF($A$1:$A$7=$A$10,ROW($A$1:$A$7))內容是 A1:A7的7格, 如該格的內容=A10的內容則取其列號(row)假如祇有A2, A3,A4,A7的內容=A10, 便會取得4個列號, 即{2,3,4,7}Row(1:1)是第一列的列號, 即1為何不打1, 因下拉之後, 1 仍是1, 如Row(1:1) 或 row(a1), 下拉之後是 Row(2:2) 或 Row(A2), 即2目的是要求下拉之後, 該引數的值是1,2,3,順序, 便要用row.small({2,3,4,7},row(1:1), 即 2,3,4,7選最小的值, 即2small({2,3,4,7},row(2:2), 即 2,3,4,7選第二最小的值, 即3index($A$1:$B$7, {2},2)即A1:B7的第2列第2欄, 即B2的值再加iserror是防錯用如上述假設, 即有4個是符合=A10的條件, 如用第2條formula下拉4格, 分別會出B2,B3,B4,B7的值, 當拉到第5格, 已無值可出, 便會出錯誤值如用有iserror的第3條較長的formula, 便不會出錯誤值, 變成空白空白格, 較為美觀如未有足夠陣列公式的思路(前提當然對各函數都一定要非常熟識)及經驗, 可能不容易馬上可以完全明白最後, 提供簡化第3條formula如下:=IF(ROW(A1)>COUNTIF($A$1:$A$7,$A$10),””,INDEX($B$1:$B$7,SMALL(IF($A$1:$A$7=$A$10,ROW($A$1:$A$7)),ROW(1:1))))


收錄日期: 2021-04-27 15:05:43
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100811000051KK01068

檢視 Wayback Machine 備份