返回列表 上一主題 發帖

排序的問題

排序的問題

如附件 Book2.zip (1.8 KB)
我使用large去抓第一、二名
剛好第一、二數字相同
塔配便用index時會抓出相同的字
可是我希望他第一名抓B
第二名抓I
需要再加入什麼判斷?

不好意思, 只看到一堆數字沒看清楚
謝謝asimov 不吝賜教

TOP

回復 7# vvcvc


($B$1:$B$26)-ROW($B$1:$B$26)*0.00001這個計算式的用意
舉例說明
B2與B9的值都是8,使用公式只會得到B2的8
所以將B欄的值-ROW($B$1:$B$26)*0.00001

ROW($B$1:$B$26)*0.00001計算結果是0.00001,0.00002,0.00003依此類推
因此B2值8經計算後為7.99998     (8-0.00002)
B9值8計算後為7.99991
再用LARGE取得大小排列數
....
其他請參考各函數說明
機器人三大定律-保護人類、服從命令、保護自己
我的三大定律-生命、生存、生活

TOP

試過可以使用
能否再請教($B$1B$26)-ROW($B$1B$26)*0.00001這個計算式的用意是什麼?
我按F9看到的是將 ...
vvcvc 發表於 2010-10-6 13:55



    我按F9看到的是將B1:B26全部減0.00001
這句有問題,應該是第一列-0.00001,第二列-0.00002,第三列-0.00003..........

TOP

本帖最後由 vvcvc 於 2010-10-6 13:58 編輯

試過可以使用
能否再請教($B$1:$B$26)-ROW($B$1:$B$26)*0.00001這個計算式的用意是什麼?
我按F9看到的是將B1:B26全部減0.00001
這個範圍內的array依然是有相同大小的數值
為什麼可以做出我期望的效果?

我使用這公式, 把計算取消
就又回到我原本的狀況
模仿公式我已經可以在我需要的地方運用, 只是不明白這公式的原理
可否再麻煩您解釋?

TOP

回復 5# vvcvc


因為
=INDEX($A$1:$A$26,MATCH(LARGE(($B$1:$B$26)-ROW($B$1:$B$26)*0.00001,ROW()),($B$1:$B$26)-ROW($B$1:$B$26)*0.00001,0))
當公式移到B29時ROW()=29,LARGE並無第29順位,所以無法得到正確結果
將公式小改一下即可
B29
=INDEX($A$1:$A$26,MATCH(LARGE(($B$1:$B$26)-ROW($B$1:$B$26)*0.00001,ROW(A1)),($B$1:$B$26)-ROW($B$1:$B$26)*0.00001,0))
看到差別了嗎
ROW()改成了ROW(A1)
機器人三大定律-保護人類、服從命令、保護自己
我的三大定律-生命、生存、生活

TOP

回復  vvcvc


不用輔助列
陣列公式 C1
=INDEX($A$1A$26,MATCH(LARGE(($B$1B$26)-ROW($B$1B$26 ...
asimov 發表於 2010-9-29 23:31


不好意思再請教一下
這個公式放在C1結果是正確的
但放到B29卻不行
這是什麼緣故?

TOP

回復 1# vvcvc


不用輔助列
陣列公式 C1
=INDEX($A$1:$A$26,MATCH(LARGE(($B$1:$B$26)-ROW($B$1:$B$26)*0.00001,ROW()),($B$1:$B$26)-ROW($B$1:$B$26)*0.00001,0))
機器人三大定律-保護人類、服從命令、保護自己
我的三大定律-生命、生存、生活

TOP

加補助欄是較正統的作法,此例也可用
=LOOKUP(2,1/(MAX(B1:B26)=B1:B26),A1:A26)
可抓到最後一個最大數

TOP

加輔助欄 排序.rar (2.04 KB)
學海無涯_不恥下問

TOP

        靜思自在 : 要用心,不要操心、煩心。
返回列表 上一主題