У меня есть небольшая проблема с созданием зависимых выпадающих списков.

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

Пример данных :

Class, Name, Skill
Magic, Aldous, Fireball
Melee, Cordelia, Fury
Magic, Hmurr, Heal
Magic, Joe, Fireball

Каждый класс имеет одни и те же навыки. (например, пользователи Магии могут выбирать между Огненным шаром, Исцелением, Благословением, Оживлением и т. д., но пользователи ближнего или дальнего боя не могут этого сделать, поскольку у них есть свои навыки).

Каждый класс имеет список предварительно определенных имен.

Можно использовать вспомогательные столбцы / таблицы для создания зависимых раскрывающихся списков, но я считаю, что это будет контрпродуктивно, поскольку в моем 3-м столбце недостаточно уникальных значений.

Как вы предлагаете мне заказать мои данные?

Вот что я попробовал:

Link1

Link2

Использование данных, хранящихся на разных листах

Спасибо за помощь! Вот как это выглядит

Вот как хранятся имена

=IF(E8<>"","t_dk_skill","")

проверяет, заполнен ли столбец, затем заполняет ячейку заданной строкой, иначе оставляет ее пустой.

Вот две колонки LOOKUP в первом столбце хранятся имена, во втором столбце хранится информация о классе /vlookup.

=
IFERROR(INDEX(tabel1,ROWS(H1:$H$1)),
IFERROR(INDEX(tabel2,ROWS(H1:$H$1)-ROWS(tabel1)),
IFERROR(INDEX(tabel3,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)),
IFERROR(INDEX(tabel4,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)),
IFERROR(INDEX(tabel5,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)-ROWS(tabel4)),
IFERROR(INDEX(tabel6,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)-ROWS(tabel4)-ROWS(tabel5)),
IFERROR(INDEX(tabel7,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)-ROWS(tabel4)-ROWS(tabel5)-ROWS(tabel6)),"")))))))

красиво отформатированный стол. обратитесь к этому

оно работает!

оно работает!

Спасибо!

1 ответ1

1

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

Скриншот

Я создал именованные диапазоны для D3:D5, которые я использовал для проверки B2.

Я также создал именованные диапазоны под названием MagicNames, MeleeNames, RangedNames, MagicSkills, MeleeSkills и RangedSkills.

Я установил валидацию для B3 на основе конкатенации выбранного класса и "Имен"

=INDIRECT($B$2&"Names")

Затем это устанавливает мой именованный диапазон для B3 равным MagicNames, MeleeNames или RangedNames.

Проверка для B4 должна быть основана на объединении выбранного класса и "Навыков"

=INDIRECT($B$2&"Skills")

Новый ответ на основе комментариев:

скриншот 2

На этот раз я создал список имен с их классом рядом с ними. Я создал 2 именованных диапазона; 1 для Имен, основанных на D2:D10, и другое, названное LOOKUP, которое было D2:E10.

Затем я создал именованные диапазоны для навыков для каждого класса (G2:G4, H2:H4 и т.д.)

Имена использовались для проверки в B2. Затем для проверки данных на B3 я использовал VLOOKUP B2 в моем именованном диапазоне LOOKUP.

=INDIRECT(VLOOKUP($B$2, LOOKUP, 2, 0))

Этот поиск вернул имя класса, которое затем использовалось для вызова соответствующего именованного диапазона для перечисления навыков.

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