Excel_Randomizer

Формулой без макроса такое делать проблематично. Разве что относительно текущей строки каждую четвертую брать?
 
Формулой без макроса такое делать проблематично. Разве что относительно текущей строки каждую четвертую брать?
да уже поняла....есть макрос который будет подсвечивать повторы....
 
Код:
Sub Color_Duplicates()
    Dim col As New Collection
    Dim curpos As Integer, i As Integer
    On Error Resume Next
 
    For Each cell In Selection
        Set col = Nothing
        curpos = 1
        
        'убираем лишние пробелы и разбиваем текст из ячейки по пробелам
        arWords = Split(WorksheetFunction.Trim(cell.Value), " ")
        
        For i = LBound(arWords) To UBound(arWords)      'перебираем слова в получившемся массиве
            Err.Clear                                   'сбрасываем ошибки
            curpos = InStr(curpos, cell, arWords(i))    'позиция начала текущего слова
            col.Add arWords(i), arWords(i)              'пытаемся добавить текущее слово в коллекцию
            
            If Err.Number <> 0 Then         'если возникает ошибка - значит это повтор, выделяем красным
                cell.Characters(Start:=curpos, Length:=Len(arWords(i))).Font.ColorIndex = 3
                cell.Characters(Start:=InStr(1, cell, arWords(i)), Length:=Len(arWords(i))).Font.ColorIndex = 3
            End If
            curpos = curpos + Len(arWords(i))       'переходим к следующему слову
        Next i
    Next cell
End Sub
 
А толку
 

Удаление повторов внутри ячейки макросом​

Код:
Sub Delete_Duplicates()
    Dim col As New Collection
    Dim i As Integer
    On Error Resume Next
 
    For Each cell In Selection
        Set col = Nothing
        sResult = ""
        
        'делим текст в ячейке по пробелам
        arWords = Split(WorksheetFunction.Trim(cell.Value), " ")
        
        'проходим в цикле по всем получившимся словам
        For i = LBound(arWords) To UBound(arWords)
            Err.Clear                           'сбрасываем ошибки
            col.Add arWords(i), arWords(i)      'пробуем добавить слово в коллекцию
            'если ошибки не возникает, то это не повтор - добавляем слово к результату
            If Err.Number = 0 Then sResult = sResult & " " & arWords(i)
        Next i
        cell.Value = Trim(sResult)      'выводим результаты без повторов
    Next cell
End Sub
 
Последнее редактирование:
Wow!!! Макросы поставила....работают )))) 'cooll)'
 
вот

тупая яблоки дурная апельсины
арбуз груши смешная умная
яблоки смешная перец груша тупая
апельсины перец яблоки груша умная
ловкая апельсины смешная помидор
груши красивая остроумная апельсины
помидор остроумная груши дурная
бананы апельсины прикольная хитрая
помидор арбуз смешная умная перец
хитрая бананы груша тыква остроумная
апельсины яблоки помидор смешная груши
тупая прикольная апельсины умная красивая
бананы тупая помидор
груши ловкая тупая апельсины
груша груши ловкая помидор апельсины
перец груши ловкая красивая апельсины
тупая неизвестная умная красивая
ловкая апельсины груши
неизвестная смешная умная тыква
яблоки апельсины остроумная хитрая прикольная
арбуз помидор груши апельсины яблоки
бананы яблоки смешная прикольная
остроумная апельсины бананы умная
бананы умная дурная груши
смешная красивая прикольная апельсины
ловкая яблоки апельсины перец бананы
 
и вот теперь без повторов

тупая:::яблоки:::дурная:::апельсины
арбуз:::груши:::смешная:::умная
яблоки:::смешная:::перец:::груша:::тупая
апельсины:::перец:::яблоки:::груша:::умная
ловкая:::апельсины:::смешная:::помидор
груши:::красивая:::остроумная:::апельсины
помидор:::остроумная:::груши:::дурная
бананы:::апельсины:::прикольная:::хитрая
помидор:::арбуз:::смешная:::умная:::перец
хитрая:::бананы:::груша:::тыква:::остроумная
апельсины:::яблоки:::помидор:::смешная:::груши
тупая:::прикольная:::апельсины:::умная:::красивая
 
Чтото я не понял, у тебя ж повторы все равно есть? Или надо фильтровать только полные повторы?
 
Чтото я не понял, у тебя ж повторы все равно есть? Или надо фильтровать только полные повторы?

мне надо было чтоб в строке слово два раза не повторялось....
мне надо было чтоб в строке слово два раза не повторялось....
 
вон же макрос наверху... вроде работает ))))
 
А вот ты о чем. Ну хорошо.
 
Надо куски формул вставлять рандомно. Главное, не думать при этом, а почаще задавать вопросы. Тогда всё получится.
А вообще-то у Николая Павлова на planetaexcel.ru есть тема "Выпадающий список с удалением использованных элементов".
 
"Выпадающий список с удалением использованных элементов".
Там несколько не то
Реализовать через формулу рандом одновременно с уникальностью если вообще реально, то чудовищно сложно
Если бы у меня было дохрена свободного времени и юношеского задора я б попробовал решить эту веселую головоломку, но, думаю, Натали уже выкрутилась гораздо более простыми методами ;)
 
Речь идёт о рандомизации порядкового номера элемента в заданном списке. Не так уж и бесконечно сложно. Небольшой макрос. Но задача, во-первых, решена, а во-вторых не хочется тратить силы при таком отношении.
 
  • Спасибо
Реакции: NatalieRedFox_333 и ~RA~
  • Спасибо
Реакции: NatalieRedFox_333
Заразил меня. Суббота!