✔ 最佳答案
ok... HLOOKUP 同 VLOOKUP 等等, 都只係會 return 最先找到的值, 即係你個 list 上面既第一個, 係無得變的. 所以你既情況我地用唔到 HLOOKUP.
我估你的 col R 應該係用 LARGE 做既, right?? [ =LARGE($E$2:$N$2,1) ] 咁我地做 col S 既時候, 我地都可以用多次 LARGE, 不過今次我地用 ARRAY FUNCTION. (老實講 ARRAY FUNCTION 係十分容易令人混淆的, 所以係有少少難度既, 仲有, 輸入完左一條 ARRAY FUNCTION 按 ENTER 係會出 ERROR 既, 一定一定要按 Ctrl-Shift-Enter 至得既)
首先講最簡單既, S4 那一個儲存格 的 function:
=LARGE(IF($E$2:$N$2=R4,$E$3:$N$3,0),1)
[ 記得入完係按 Ctrl-Shift-Enter ]
我地首先重溫一次 Large, Large(array, n) 第一個參數係一個 array, 第二個參數係要佢 return 排第幾位既 element 出黎. 上面既的 large 的第二個參數很簡單, 係 1, 即係搵最大果個, 而前面個 array 就係重點了, IF ( $E$2:$N$2=R4 , $E$3:$N$3 , 0 ), if function 係
if (logical_test, value if true, value if false)
上面既 array 既意思就係, 在 E2 到 N2 裡面, 如果 等於 R4 果一格, 就 return E3 到 N3, 如果唔係就 return 0. 咁佢會 return 咩比你呢?? { 0, 0 , 0 , 0 , 0 , 6, 0, 0 , 0, 0 }, 因為 R4 係 33, 所以只有 33 果一行至會比個 6 你, 其他都唔會有, 而就算有其他 33, 因為我地而家係第一個, 永遠只要最大既, 所以我地加多條 Large function, 確保佢只係 return 最大果一個
上面既結果就係佢會 return 6 比你.
然後講第二個, S5, 這就有點複雜了
=IF(R5=R4, LARGE(IF($E$2:$N$2=R5,$E$3:$N$3,0),2),LARGE(IF($E$2:$N$2=R5,$E$3:$N$3,0),1))
[ 記得入完係按 Ctrl-Shift-Enter ]
首先要 check 下 而家這一行 (R5), 係唔係同上一行(R4)一樣, 如果係一樣, 我地既 Large function 就唔係要第一個, 而係要排第二果個, 所以我地就加多個 if function 係最外面.
然後, s6 到 s13 都係照樣做, col T 同 col U, 就要改埋個 array IF 裡面既 value if true 的 row #.
最後的重點, 係上面幫你寫的 function 有兩個限制:
1. 我假設左你既[死亡]既 最少值 係 0, 所以個 array IF 先至會唔等於 R 就 return 0;
2. 我針對你的情況,[殺敵]只係有兩個同分, 所以我後尾加既 IF 先至只係 check 對上一行同唔同, 如果有三個同分, 就要check 埋再上一行了.
2007-12-02 22:19:46 補充:
日期當然都可以比較啦....假設: (我個 excel default 日期係 dd/mm/yyyy)A1: 1/4/2007A2: 30/4/2007如果=A2-A1, 就會出 29, 因為差29日=if(A2>A1, " true ", " false "), 佢就會出 true