2

сценарий

Столбец J отображает данные из столбца C на основе случайного выбора из 2 других столбцов чисел, т.е.

J1: =INDIRECT("C"&INDIRECT("F"&N1))
J2: =INDIRECT("C"&INDIRECT("F"&N2))
J3: =INDIRECT("C"&INDIRECT("F"&N3))
...

ГДЕ:

  • Столбец C - это данные для размещения в J1 , J2 , J3 и т.д.
  • Столбец F - результат генератора случайных чисел (число от 1 до 122)
  • Столбец N представляет собой последовательное фиксированное число, основанное на количестве ячеек, которые имеют данные в столбце C (обычно от 1 до 122).

проблема

Если J2 = J1 , то в основном я хочу выполнить "Calculate Full" (или аналогичную функцию), пока они не станут равными, и продолжить проверку столбца J до конца массива. Например: если J1=1 , J2=3 , J3=2 , J4=3 , J5=1 и J6=2 , это допустимо, однако, если J1=1 , J2=1 , J3=3 , J4=4 , J5=3 и J6=3 , это неприемлемо, потому что J1 & J2 и J5 & J6 являются дубликатами.

Аналогично, в столбце I отображаются данные из столбца B например: =INDIRECT("B"&INDIRECT("F"&N1)) и т.д., Но если я смогу заставить электронную таблицу автоматически пересчитываться на основе дубликатов в столбце J , столбец I будет следовать Столбец J потому что оба I & J используют значения в N & F для копирования данных из столбцов B и C соответственно.

Все, что я до сих пор пробовал, приводит к ошибке круговой ссылки. Я могу вручную "Рассчитать полный", но я все еще получаю дубликаты (по вертикали в столбце J), и это не приемлемо.

Столбец B содержит названия песен, и в них нет дубликатов. В колонке C есть имена исполнителей, и в колонке C есть множество дубликатов, потому что в группе всего 4 певца, и я бы предпочел, чтобы певец не пел 2 песни подряд.

Какие-либо предложения?

Примечание. Если для ответа требуется использовать код VBA, мне потребуется большая помощь! : О)

Больше информации:

Пожалуйста, обратитесь к Screen-Shot на http://imgur.com/RcQaexo

ОПИСАНИЕ КОЛОННЫ:

Столбец A является (ручным) счетчиком песен, чтобы указать, сколько песен в списке

Столбец B содержит названия песен с ключом (в скобках), в котором песня должна быть воспроизведена

Колонка C указывает человека, который поет песню. Примечание: «Инст.» в колонке C указывается, что песня инструментальная - нет вокала.

Столбец D указывает жанр песни, где "2" обозначает двухступенчатый тип песни. Другими жанровыми представлениями являются "P" для польки, "W" для вальса и т.д. Столбцы B и C сортируются по названию песни (столбец B), а затем по жанру (столбец D).

Столбец E - это генератор случайных чисел: =Rand()

Столбец F генерирует число на основе столбца E и ограничивает диапазон чисел на основе количества песен в каждом жанре: =RANK(E1,E$1:E$53 Примечание: существует 53 песни с 2-ступенчатым типом.

Колонка G - вертикальная прокладка (нет данных)

Колонка H является еще одним ручным счетчиком, чтобы отслеживать количество песен в каждом наборе. Как правило, есть 4 набора в ночь, и каждый набор может содержать 8-13 песен в зависимости от того, установлен ли набор 45 минут или 1 час.

Столбец I - это названия песен, скопированные из столбца B на основе генератора случайных чисел (столбец E) и "фиксированных" чисел в столбце N: =INDIRECT("B"&INDIRECT("F"&N2))

Столбец J - это певец / исполнитель, скопированный из столбца C на основе генератора случайных чисел (столбец E) и тех же фиксированных чисел в столбце N: =INDIRECT("C"&INDIRECT("F"&N2))

Колонка K указывает жанр каждой песни и определяется вручную на основе определенного "микса" жанров. Пример снимка экрана показывает, что микс должен состоять из 2-х 2-х шаговых песен, после чего следует вальс, затем еще 2 2-х шага, затем медленная песня и т.д. Мы, как группа, определяем жанровое сочетание, основываясь на прошлом опыте работы на определенных площадках.

Столбец L - это еще один разделительный столбец - нет данных

Столбец M - это цветная копия столбца K помогающая отследить жанровое сочетание, определяемое числами в столбце N и столбце F

Примечание: столбцы H , I , J & K печатаются перед каждым концертом - копия для каждого участника группы.

Столбец N является шаблоном смешивания жанров и имеет цветовую кодировку, аналогичную столбцу M Красный = 2-ступенчатый, Синий = Вальс, Розовый = Полька, Зеленый = Медленный и Черный = Рок-н-ролл. Номера вводятся вручную и последовательно начинаются с первой песни определенного жанра в списке основных песен (столбцы B , C и D) до последнего номера этого жанра. Текущее расположение жанра выглядит следующим образом: 2-шаговые песни варьируются от 1 до 53, Polkas варьируются от 54 до 68, рок-песни варьируются от 69 до 90, медленные песни варьируются от 91 до 111, а Вальс - от 112 до 120.

На снимке экрана нет четырех столбцов, которые отслеживают номера первого и последнего жанра и не имеют особого отношения к моему первоначальному вопросу.

Как вы видите на скриншоте, "Джерри" появляется в J2 и J3 и снова в J7 , J8 и J9 . Также обратите внимание, что "Фил" появляется в J13 и J14 . Цель здесь состоит в том, чтобы устранить как можно больше "дубликатов строк". Джерри поет до 60 песен разных жанров, Чак поет до 30 и Фил поет 20 песен, поэтому для каждого исполнителя должно быть достаточное количество песен, чтобы дубликаты не были проблемой.

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

1 ответ1

0

Вы можете вставить эту формулу в другой столбец (в моем случае я использовал столбец K). Он увеличивает значение на единицу, если оно совпадает с предыдущим значением, если предыдущее значение не является максимальным значением, а затем возвращает единицу. В K1 просто используйте =J1 , затем введите эту формулу в K2 и выполните автозаполнение вниз. Замените MAX_VALUE фактическим максимальным значением.

=IF(J2=K1,IF(J2=MAX_VALUE,1,J2+1),J2)

Вот пример того, как это выглядит, принимая максимальное значение 10:

J    K
2    2
6    6
6    7
7    8
7    7
10   10
10   1
10   10

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