Alex5975, приветствую!
Можно например так:
[vba]Код
Function shuffle_Words(rng As Range, pos_)
Dim items, new_items(), nums
Dim i, j
nums = Split(pos_)
items = Split(rng, " ")
ReDim new_items(0 To UBound(items))
For i = LBound(items) To UBound(items)
For j = LBound(nums) To UBound(nums)
If CInt(nums(j)) - 1 = i Then
new_items(j) = items(i)
End If
Next j
Next i
shuffle_Words = Join(new_items, " ")
End Function
[/vba]
Первым аргументом функции идет ячейка со словами, вторым - номера слов через пробел (см. файл)