|
=IF(ROW()>COUNTIF(cName,$B$1)+ROW($B$2),"",INDEX(rDatabase,SMALL(IF(cName=$B$1,ROW(cName)-2),ROW()-ROW($B$2)),COLUMN()-COLUMN($A$1)))
其中:
[1]--COUNTIF(cName,$B$1)+ROW($B$2):可以观察其数值变化,不难理解
[2]--INDEX(rDatabase,SMALL(IF(cName=$B$1,ROW(cName)-2),ROW()-ROW($B$2)),COLUMN()-COLUMN($A$1)))
变为标准模式:INDEX(REF,Row_Number,Column_Number)
其中Row_Number对应为:SMALL(IF(cName=$B$1,ROW(cName)-2),ROW()-ROW($B$2))
再次变为标准模式:SMALL(Data_Array,Index)
其中Index对应为:ROW()-ROW($B$2)
其中Data_Array对应为:IF(cName=$B$1,ROW(cName)-2)
解释:如果cName=$B$1,返回cName所对应的行-2,否则返回FALSE(即0)
因此SMALL(Data_Array,Index)返回的是一数组,这个数组存放的是所有ROW(cName)-2值(这个ROW(cName)-2当然就是当cName=$B$1是的值)。这样INDEX(...)中的Row_Number便是个数组了。
对于其它部分就好理解了。
其实这已经是老内容了,若还不明白,可以看看以前的贴子。 |
|