=SMALL(範囲,順位)
で順位に応じた秒の取り出しはできていると思うので、
要点は、同じ値が含まれた表からそれぞれの値(この場合名前)をVLOOKUP するというような意味ですね。
通常関数では、ちょっと難しく思えるので、
ユーザー定義関数を作ってみました。
----------------------------------------------------------------
Function VlookupDup(検索値, 範囲 As Range, 列, seq)
Dim i, j
For i = 1 To 範囲.Rows.Count
For j = 1 To 範囲.Columns.Count
If 範囲.Cells(i, j) = 検索値 Then
seq = seq - 1
If seq = 0 Then
VlookupDup = 範囲.Cells(i, j + 列 - 1)
Exit Function
End If
End If
Next j
Next i
VlookupDup = CVErr(xlErrNA)
End Function
----------------------------------------------------------------
使い方:
秒 名前
15 A
12 B
15 C
14 D
16 E
の様な表がある時
=VlookupDup(検索値, 範囲, 列, 位置)
表がA1から始まる時
=VlookupDup(15,$A$1:$B$5,2,2)
位置で指定したで2つめの検索値15 に該当する2列目の値"C" がとり出されます。
C列に
=SMALL(範囲,1)
=SMALL(範囲,2)
=SMALL(範囲,3)
=SMALL(範囲,4)
=SMALL(範囲,5)
の様にある時D列に名前を求めるには
D1
=VlookupDup(C1,$A$1:$B$5,2,COUNTIF($C$1:C1,C1))
として以下下にコピー
お礼
ありがとうございます。難しそうですが、試してみます。