Я пытаюсь выбрать случайную строку из моего набора данных, показанного ниже.
Я хочу выбрать 2 строки из списка случайным образом, при этом столбец C является рандомизированным столбцом, а столбец D соответствует значению, отображаемому в столбце C.
Так:
Дотти Дэвис | Кей, Меняя конец 1x03
Лукас Роялти | Молодой Иона, 9-1-1 5x17
сейчас я использую эту формулу
=INDEX(C1:D10,RANDBETWEEN(1,ROWS(C1:C10)),1)
=INDEX(D1:E10,RANDBETWEEN(1,ROWS(D1:D10)),1)
Что показывает это:
Дотти Дэвис | Редберд, Бэтколеса 2x10
Лукас Роялти | Я, Улица Сезам
Столбец C работает, однако столбец D не соответствует исходному значению в строке, полученной из столбца C.
Как мне это сделать правильно с помощью Excel???
Попробуйте использовать следующую формулу:
=TAKE(SORTBY(C1:D10,RANDARRAY(ROWS(C1:D10))),2)
Показана демо-версия в веб-версии Excel!
Или,
=CHOOSEROWS(SORT(C1:D10,RANDARRAY(ROWS(C1:D10)),1),SEQUENCE(2))
Использование Structured References
или Tables
:
=CHOOSEROWS(SORT(Table1,RANDARRAY(ROWS(Table1)),1),SEQUENCE(2))
@jenstar, как вы заметили, таблицы Google и Excel разные. Не следует отмечать Excel/Excel-формулу. Есть тег Google Таблиц
Лист ввода TV Actors
: преобразование списка в таблицу Excel
OK
.Table Design
, чтобы переименовать ее, например. TV_Actors
.Вспомогательный лист Hidden
В ячейку A2
введите следующую формулу разлива:
=SEQUENCE(ROWS(TV_Actors))
Скройте это, если желательно.
Формулы -> Определенные имена -> Диспетчер имен.
PickRandomRows
=LAMBDA(data,rows,TAKE(SORTBY(data,RANDARRAY(ROWS(data))),rows))
TV_Actors_Rows
=Hidden!A2#
Выходной лист Random
A3
создайте раскрывающийся список, используя Data-->Data Tools-->Data Validation
.
Выберите List
и используйте следующую формулу:
=TV_Actors_Rows
В ячейку A5
введите следующую формулу разлива:
=TV_Actors[#Headers]
В ячейку A6
введите следующую формулу разлива:
=PickRandomRows(TV_Actors,A3)
Вы можете использовать функцию PickRandomRows
(Лямбда) в любом месте вашей книги.
Примените форматирование по своему усмотрению.
Поиграйте с этим, выбрав количество строк в ячейке A3
и нажав F9, чтобы пересчитать.
Отлично, спасибо. У меня есть последний вопрос: если бы я хотел добавить больше строк, например. C1:D15, могу ли я это изменить динамически или мне нужно обновлять формулу каждый раз, когда это происходит?