Проверка данных - динамическое обновление на основе значения в таблице - PullRequest
1 голос
/ 07 января 2020

У меня есть две вкладки в моей книге, первая из которых содержит таблицу с подробным описанием названий проектов, этапов и задач, которые пользователи будут регулярно обновлять:

Project Name    Project Stage    Project Task    
------------------------------------------------------
Project 1       Design           First stage of design
Project 1       Design           Second stage of design
Project 1       Build            First stage of build
Project 1       Test             First stage of test
Project 2       Design           First stage of design
Project 2       Design           Second stage of design
Project 3       Design           Second stage of design

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

Project Name   |  *Validation list from column A in tab1
Project Stage  |  *Validation list based on the value in Project Name field
Project Task   |  *Validation list based on the value in Project Name AND Project Stage fields

Я настроил список имен проектов для чтения из таблицы в Табл.1. Я бы хотел, чтобы параметры списка для этапа проекта на вкладке 2 обновлялись в зависимости от значения, выбранного в имени проекта.

Я читал несколько руководств здесь и в других местах, которые, кажется, связаны с созданием нескольких именованных таблиц в отдельная вкладка и с помощью INDIRECT. В идеале я бы хотел избежать создания каких-либо фиктивных таблиц, поскольку их будет сложно поддерживать при передаче файла пользователям.

Можно ли настроить раскрывающийся список «Стадия проекта» для динамического обновления в зависимости от выбора в названии проекта только показывает этапы, перечисленные в Таблице 1 для этого конкретного проекта.

Надеюсь, я достаточно четко сформулировал это.

1 Ответ

0 голосов
/ 07 января 2020

Это решение будет работать только в том случае, если все имена ваших проектов сгруппированы, т. Е. У вас не будет макроса sh, равного Project 1 | Project 3 | Project 1 | Project 5 | Project 3 | ... в столбце A.

Я также предполагаю, что ваши данные хранятся в ячейках A1:C8:

enter image description here

Насколько я понимаю, вы хотели бы иметь динамический c раскрывающийся список (Список проверки), который покажет:

  • B2:B5 диапазон для Project 1,
  • B6:B7 диапазон для Project 2,
  • B8:B8 диапазон для Project 3.

Для этого нам нужно использовать формулу MATCH, чтобы найти первое вхождение выбранного вами имени проекта, и объединить его с LOOKUP, чтобы найти его последнее вхождение. Создайте именованный диапазон («ProjectName») и используйте следующую формулу (я предполагаю, что имя проекта указано в ячейке F2):

=OFFSET(Sheet1!$A$1,MATCH(Sheet1!$F$1,Sheet1!$A$1:$A$8,0)-1,1,LOOKUP(Sheet1!$F$1,Sheet1!$A$1:$A$8,ROW(Sheet1!$A$1:$A$8))-MATCH(Sheet1!$F$1,Sheet1!$A$1:$A$8,0)+1,1)

Вот как будет выглядеть окончательный результат после использования » ProjectName "в списке проверки:

enter image description here

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