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]
Первым аргументом функции идет ячейка со словами, вторым - номера слов через пробел (см. файл)