Как перемешать строки в excel в произвольном порядке
Перейти к содержимому

Как перемешать строки в excel в произвольном порядке

  • автор:

Быстрый метод перемешивания элементов списка в Excel

В этом приеме описывается быстрый метод перемешивания элементов списка. Это подобно перетасовке колоды карт, где каждая строка представляет собой карту.

На рис. 165.1 вы можете видеть список из двух столбцов, отсортированных в определенном порядке по столбцу В. Цель заключается в том, чтобы расставить строки в случайном порядке.

Рис. 165.1. Этот список может быть перемешан случайным образом

Рис. 165.1. Этот список может быть перемешан случайным образом

  1. В ячейку С1 введите заголовок Случайное число.
  2. В ячейку С2 введите следующую формулу: =СЛЧИС() .
  3. Скопируйте С2 вниз по столбцу, чтобы таблица стала полной.
  4. Активизируйте любую ячейку в столбце С и выберите Главная ► Редактирование ► Сортировка и фильтр ► Сортировка от минимального к максимальному (или щелкните правой кнопкой мыши и выберите команду Сортировка в контекстном меню).

Для получения другой случайной конфигурации нажмите F9, чтобы сгенерировать новые случайные числа, а затем отсортируйте снова. На рис. 165.2 показан перемешанный список.

Рис. 165.2. Список после перемешивания

Рис. 165.2. Список после перемешивания

Перемешать случайным образом данные в каждой строке

Есть лист Excel в котором столбцы E, F, G, H. Можно ли как-то перемешать эти столбцы случайным образом? Т.е. допустим было так:

ans1 ans2 ans3 ans4 Сигнала Свистка Салюта Поцелуя Сетка План Бредень Динамит шар цилиндр конус пирамида 

а стало так:

ans2 ans4 ans1 ans3 Свистка Поцелуя Сигнала Салюта План Динамит Сетка Бредень цилиндр пирамида шар конус 

Отслеживать
8,341 3 3 золотых знака 18 18 серебряных знаков 24 24 бронзовых знака
задан 4 мар 2018 в 20:01
1,063 14 14 серебряных знаков 25 25 бронзовых знаков
Т.е. содержимое этих столбцов перемешать случайным образом.
4 мар 2018 в 20:16

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Макросом, тасование Фишера — Йетса:

Sub Shuffle() ' Тасование столбцов целиком Dim Tmp As Range Dim V As Variant Dim I As Integer Dim J As Integer Dim Cols As Variant Cols = Array(Range("E:E"), Range("F:F"), Range("G:G"), Range("H:H")) For I = 3 To 1 Step -1 J = Int((I + 1) * Rnd) Set Tmp = Cols(J) V = Tmp.Value Cols(J).Value = Cols(I).Value Cols(I).Value = V Next I End Sub Sub Shuffle() ' Тасование столбцов построчно Dim R As Long Dim J As Integer Dim Tmp As Variant R = 1 While (Not IsEmpty(Cells(R, 5))) For I = 3 To 1 Step -1 J = Int((I + 1) * Rnd) + 5 Tmp = Cells(R, J).Value Cells(R, J).Value = Cells(R, I + 5).Value Cells(R, I + 5).Value = Tmp Next I R = R + 1 Wend End Sub 

Отслеживать
ответ дан 5 мар 2018 в 5:12
6,151 3 3 золотых знака 20 20 серебряных знаков 38 38 бронзовых знаков

Чуть чуть не то что мне нужно. Мне нужно не просто столбцы целиком в случайном порядке перемешать, а данные во всех столбцах. Например есть столбцы E, F, G,H и первая строчка в этих столбцах. Нужно в этой строчке перемешать данные, также во второй и т.д.

5 мар 2018 в 5:39
Обновил ответ, отрабатывает до первой пустой строки в столбце E
5 мар 2018 в 6:11
Спасибо большое.
5 мар 2018 в 6:27

У меня 35 тысяч строк и для таких больших данных вылезает ошибка Run-time erroe ‘6’: Overflow на строчке R = R + 1

5 мар 2018 в 6:39
Должно помочь Dim R As Long
5 мар 2018 в 6:43

Можно так (перемешать целиком столбцы/строки). Обложите свои данные случайными значениями функции =СЛЧИС() (или =RAND() ) как ниже на примере (диапазон начинается со строки 1 и со столбца A, к примеру).

 0,340428874 0,076703163 0,807499996 0,919554717 0,61390529 Салюта Свистка Поцелуя Сигнала 0,850945887 Бредень План Динамит Сетка 0,944935893 конус цилиндр пирамида шар 

Далее нам нужно перемешать значения . Выделяем следующий диапазон

0,340428874 0,076703163 0,807499996 0,919554717 Салюта Свистка Поцелуя Сигнала Бредень План Динамит Сетка конус цилиндр пирамида шар 

Переходим Главная -> Сортировка и фильтр -> Настраиваемая сортировка -> Параметры -> Столбцы диапазона -> Ok . Далее Сортировать по выбираем Строка 1

 0,810736094 0,922569869 0,208575751 0,283217144 0,928293194 Поцелуя Салюта Сигнала Свистка 0,274564895 Динамит Бредень Сетка План 0,516270878 пирамида конус шар цилиндр 

или так (каждый раз по разному)

 0,711695007 0,041197715 0,207870941 0,979356982 0,718814292 Свистка Поцелуя Сигнала Салюта 0,259560572 План Динамит Сетка Бредень 0,198317825 цилиндр пирамида шар конус 

Аналогично, если нам нужно перемешать по столбцам. Выделяем так

0,61390529 Салюта Свистка Поцелуя Сигнала 0,850945887 Бредень План Динамит Сетка 0,944935893 конус цилиндр пирамида шар 

Переходим Главная -> Сортировка и фильтр -> Настраиваемая сортировка -> Параметры -> Строки диапазона -> Ok . Далее Сортировать по выбираем Столбец A . На выходе

 0,512852582 0,603497885 0,519960084 0,219585455 0,331536762 конус цилиндр пирамида шар 0,021012338 Бредень План Динамит Сетка 0,666965896 Салюта Свистка Поцелуя Сигнала 
 0,815880199 0,91124554 0,168220289 0,761347258 0,339763721 Бредень План Динамит Сетка 0,0601611 конус цилиндр пирамида шар 0,81674225 Салюта Свистка Поцелуя Сигнала 

Больше данных, больше вариантов.

Как перемешать строки в excel в произвольном порядке

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Как перемешать ячейки в случайном порядке. и в каждом столбце отдельно

Author24 — интернет-сервис помощи студентам

Здраствуйте формучане. Возникла такая надобность. Перемешать ячейки в столбцах. Столбцов много.
прикрепляю файл с моим примером. Там всё подробно расписал.
Заранее благодарю.

Пример.rar (12.6 Кб, 33 просмотров)

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

перемешать в каждом слове все символы в случайном порядке кроме первого и последнего.
Дана строка в которой записаны слова через пробел. Необходимо перемешать в каждом слове все символы.

Как перемешать строки массива в случайном порядке?
Здравствуйте! Подскажите, пожалуйста, как перемешать строки массива в случайном порядке? Наверняка.

Перемешать числа в случайном порядке
Есть набор чисел: < 1, 2, 3, 4, 5, 6, 7, 8, 0 >Нужно написать функцию, которая будет.

Перемешать массив в случайном порядке
. доброго времени суток, уважаемые форумчане! Существует ли в классе Array "прямой" метод.

3262 / 890 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2

Лучший ответ

Сообщение было отмечено Erolim как решение

Решение

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Sub ikki_mixing() Dim a(), b(), ac(), bc(), c As New Collection, i&, j&, m&, n&, t&, ti& a = Selection.Value: n = UBound(a): m = UBound(a, 2) ReDim ac(1 To n, 1 To m): ReDim b(1 To n, 1 To m): ReDim bc(1 To n, 1 To m) Application.ScreenUpdating = False For i = 1 To n For j = 1 To m ac(i, j) = Selection.Cells(i, j).Font.Color Next j, i For i = 1 To m For j = 1 To n: c.Add j: Next j For j = n To 1 Step -1 ti = Round(Rnd() * j + 0.5): t = c(ti): c.Remove ti b(n - j + 1, i) = a(t, i): bc(n - j + 1, i) = ac(t, i) Next j Next i Selection.Value = b For i = 1 To n For j = 1 To m Selection.Cells(i, j).Font.Color = bc(i, j) Next j, i End Sub

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *