Как получить N-й непустой столбец в Excel - PullRequest
1 голос
/ 28 февраля 2020

Я хочу использовать электронную таблицу Excel для розыгрыша множества предметов среди нескольких претендентов. Я сделал лист с колонкой для предмета и по одному для каждого претендента. В каждой строке в первом столбце есть имя элемента, и каждый пользователь помещает «y» в свою ячейку, если у него есть интерес к этому элементу:

Item -A-B-C-D-E-F-G-
Foo  - -Y- -Y- -Y- -
Bar  -Y-Y-Y- - - - -
Roll -Y- -Y-Y- - -Y-

Затем я добавил столбец, в котором подсчитывалось количество претендентов. с формулой вроде:

COUNTA (Таблица2 [@ [A]: [G]])

и другой столбец для выбора случайного числа среди претендентов с формулой, подобной:

= CEILING.MATH (RAND () * [Ячейка количества претендентов])

Проблема заключается в следующем: как только у меня есть индекс победителя, как я могу отобразить имя победителя? на основе индекса какого Y был выбран?

1 Ответ

1 голос
/ 28 февраля 2020

Я решил эту проблему, сделав еще одну таблицу рядом с первой таблицей с колонкой для каждого претендента. Значение каждой ячейки = сколько «Y» (или непустых ячеек) встречается до и включая текущего соперника. Формула для каждой ячейки:

Первый столбец просто равен, если соответствующая ячейка пуста: 0 в противном случае: 1

= IF (ISBLANK (Table2 [@A]), 0 , 1)

И последующие столбцы равны предыдущему столбцу + формула выше:

= IF (ISBLANK (Table2 [@B]), 0,1) + K2

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

A-B-C-D-E-F-G
0-1-1-2-2-3-3
1-2-3-3-3-3-3
1-1-2-3-3-3-4

После того, как у меня есть эта таблица, я могу успешно использовать match и index, чтобы получить имя 3-го претендента на данный ряд. Сначала я получаю абсолютный индекс n-го непустого столбца (последний параметр: 0 указывает, что я хочу точное совпадение, что дает мне первое вхождение «n» в моей вспомогательной таблице для этой строки:

= MATCH (Таблица 2 [@ [Снимок результатов лотереи]], K2: P2,0)

И затем, используя этот индекс, я могу получить имя победителя (где B1: H1 содержит имена столбцов и ячейку в столбце J: текущая строка содержит индекс решения:

= INDEX ($ B $ 1: $ H $ 1,1, IF (J2> 0, J2, ""))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...