Если кому интересно, задачу решил с помощью VBA:
[vba]Код
Function ArrayValueByStringNumber(ByVal arrStringNumbers, ByRef arrValues) As Variant
'arrStringNumbers - массив номеров строк
'arrValues - массив значений, откуда будет проводиться выборка по номерам строк
If UBound(arrStringNumbers) = 0 Then Exit Function ' нет в массиве номеров строк
' подготавливаем массив для результатов:
ReDim resArr(1 To UBound(arrStringNumbers), 0)
' заполняем новый массив
For i = LBound(arrStringNumbers) To UBound(arrStringNumbers)
resArr(i, 0) = arrValues(arrStringNumbers(i, 1))
Next i
ArrayValueByStringNumber = resArr
End Function
[/vba]
[moder]Для кода VBA другая кнопочка - #