如第一行為表頭,A列(例如A2:A101,下同)為姓名,B列數(shù)據(jù),在C2單元格輸入公式“=IF(A2=0,0,INT(CONCATENATE(INT(B2),200-ROW(A1))))”。公式中ROW(A1)為A1單元格所在的行數(shù)即為1,(該公式下拉時(shí)依次為2、3、4.....),用200來減是為了CONCATENATE函數(shù)中的第2個(gè)參數(shù)保持3位數(shù),CONCATENATE函數(shù)是一個(gè)拼合函數(shù)這里把B列的數(shù)據(jù)和它所在的行數(shù)拼合成一個(gè)數(shù)據(jù)。這樣在對它進(jìn)行排序后該數(shù)據(jù)包含了它所在行數(shù)的信息。CONCATENATE函數(shù)INT函數(shù)套用是為了把原來的文本變?yōu)閿?shù)字。
在D2單元格輸入公式“=LARGE(C:C,ROW(A1))”即對B列數(shù)值(包含所在行的信息)按大小排列。
在F2單元格(為了與原始清單分開中間空了一列)輸入公式“=IF(D2=0,0,200-RIGHT(D2,3))”,函數(shù) RIGHT(D2,3)即為D2單元格數(shù)據(jù)的后3位數(shù),用200來減即為此數(shù)據(jù)所在的行數(shù)。
在G2單元格輸入公式“=IF($F2=0,0,INDEX($A$2:$B$15,$F2,COLUMN(A1)))”,并拖到H2單元格。INDEX函數(shù)為引用函數(shù),即根據(jù)F2單元格所標(biāo)明的行數(shù)在$A$2:$B$15單元格矩陣中引用姓名及得分。
在I2單元格輸入公式“=IF(H2=0,0,IF(H2=H1,I1,ROW(A1)))”,本來G、H列就是按得分大小排列的,但可能有平列名次,所以選用上述公式。
最后把C2到I2單元格的公式下拉,程序就完成了。