1

Я использую Excel для Mac 2011

Для лингвистического проекта я хочу сделать следующее. У меня будет такой список слов (на самом деле он будет намного больше):

Основной список:

  1. Мешок
  2. ножка
  3. Магнит
  4. яблоко
  5. Жвачка

Сначала я копирую и вставляю слова на новый лист. Затем я создаю случайные числа (используя RAND) в соседнем столбце. Чтобы получить случайный список, я использую SORT, чтобы отсортировать список слов по значению случайно созданных чисел.

  1. Сумка .011234123
  2. Ножка .001324234
  3. Магнит .01324243
  4. Apple .013245588
  5. Резинка .0123412341

Сортировать по номеру Колонна

ЭТО ПОЛУЧАЕТ МЕНЯ :::

Рандомизация 1:

  1. Жвачка
  2. Магнит
  3. яблоко
  4. Мешок
  5. Позволять

У меня будет несколько рандомизаций. Предположим, я хочу изменить слово. Есть ли способ сделать рандомизацию зависимой от основного списка? То есть, если я внесу изменение в основной список (изменить слово), есть ли способ, чтобы эти изменения также были выполнены в моей рандомизации?

2 ответа2

1

Я мог бы предложить решение, используя комбинацию RAND(), RANK() и VLOOKUP():

Сначала создайте свой основной список:

Затем добавьте столбец, который генерирует случайное число с помощью RAND() :

Затем столбец, который будет использовать RANK() для ранжирования этих случайных чисел: =RANK(E2,E:E)

Наконец, используйте ROW() и VLOOKUP(), чтобы вернуть отсортированные ранги: =VLOOKUP(ROW()-1,C:D,2,0)

Любые слова, добавленные вами в основной список, приведут к пересчету каждой функции RAND(), которая затем изменит ранжирование, по существу создав новый рандомизированный порядок.

Повторите это три раза для трех необходимых вам рандомизированных списков.

0

Предполагая, что ваши данные находятся на Листе 1, начиная с A1, и отсортированы по столбцу B, который является случайным числом, поместите эту формулу, начиная с строки 1, и заполните автоматически:

=INDEX(Sheet1!A$1:A$6,ROW())

Он просто использует ROW() для увеличения row_num в INDEX() мере его заполнения.

Или, если вы не хотите сортировать, попробуйте эту формулу:

=INDEX(Sheet1!A$1:A$6,MATCH(LARGE(Sheet1!B$1:B$6,ROW()),Sheet1!B$1:B$6,0))

Этот немного веселее. Снова используя ROW() для автоматического приращения, он использует LARGE() чтобы найти следующее наибольшее случайное число, затем INDEX/MATCH чтобы вернуть слово в этой позиции.

Помните, что RAND() является изменчивым, то есть он будет пересчитывать себя каждый раз, когда вычисляется ваша таблица. Я рекомендую использовать ручной расчет, если вы собираетесь использовать этот метод.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .