Excel_Randomizer

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Формулой без макроса такое делать проблематично. Разве что относительно текущей строки каждую четвертую брать?
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
Формулой без макроса такое делать проблематично. Разве что относительно текущей строки каждую четвертую брать?
да уже поняла....есть макрос который будет подсвечивать повторы....
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
Код:
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
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
А толку
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145

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

Код:
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
 

Gadalka

R.I.P.
Сообщения
2 530
Реакции
869
Последнее редактирование:

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
Wow!!! Макросы поставила....работают )))) 'cooll)'
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
вот

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

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
и вот теперь без повторов

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Чтото я не понял, у тебя ж повторы все равно есть? Или надо фильтровать только полные повторы?
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
Чтото я не понял, у тебя ж повторы все равно есть? Или надо фильтровать только полные повторы?

мне надо было чтоб в строке слово два раза не повторялось....
мне надо было чтоб в строке слово два раза не повторялось....
 

NatalieRedFox_333

Чего мне бояться? - подумала Красная Шапочка...)))
Топикстартер
Сообщения
2 089
Реакции
145
вон же макрос наверху... вроде работает ))))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
А вот ты о чем. Ну хорошо.
 

NNN5

Модератор
15 лет на форуме
Сообщения
1 257
Реакции
1 013
Надо куски формул вставлять рандомно. Главное, не думать при этом, а почаще задавать вопросы. Тогда всё получится.
А вообще-то у Николая Павлова на planetaexcel.ru есть тема "Выпадающий список с удалением использованных элементов".
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
"Выпадающий список с удалением использованных элементов".
Там несколько не то
Реализовать через формулу рандом одновременно с уникальностью если вообще реально, то чудовищно сложно
Если бы у меня было дохрена свободного времени и юношеского задора я б попробовал решить эту веселую головоломку, но, думаю, Натали уже выкрутилась гораздо более простыми методами ;)
 

NNN5

Модератор
15 лет на форуме
Сообщения
1 257
Реакции
1 013
Речь идёт о рандомизации порядкового номера элемента в заданном списке. Не так уж и бесконечно сложно. Небольшой макрос. Но задача, во-первых, решена, а во-вторых не хочется тратить силы при таком отношении.
 
  • Спасибо
Реакции: NatalieRedFox_333 и ~RA~

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
  • Спасибо
Реакции: NatalieRedFox_333

NNN5

Модератор
15 лет на форуме
Сообщения
1 257
Реакции
1 013
Заразил меня. Суббота!