2013-11-13 5 views
1

Я хочу следующее в Excel:Excel: Выпадающий список зависит от другого списка

Два раскрывающихся списков в соседних клетках:

Выпадающий список # 1 | Выпадающий список # 1

Dropdown list 1: 
One 
Two 
Three 

Если я выбираю один в первой ячейке, список во второй ячейке должен содержать следующие варианты:

One:<br/> 
1.1<br/> 
1.2<br/> 
1.3 

Если я выбираю два в первой ячейке, список в вторая ячейка должна содержать следующие варианты:

Two:<br/> 
2.1<br/> 
2.2 

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

Обновление: пример. При выборе f.ex. Группа 1 под заголовком Группы (col A), позиции, перечисленные в группе 1 справа (col D), должны отображаться под заголовком позиции (col B). И то же самое для других групп.

enter image description here

ответ

3

Дополнение обещал:

Когда вы используете список для проверки, вы должны ввести диапазон, как показано ниже.

Excel2

OFFSET функция позволяет динамически устанавливать диапазон на основе его входных критериев.

Если вы считаете это:

=OFFSET(C1,0,0,1,1) 
  • Аргумент 1 = Якорь ячейка
  • Аргумент 2 = Число строк для перемещения, вы можете использовать минус число здесь, чтобы перемещать строки и положительные числа, чтобы переместить down
  • Аргумент 3 = Количество столбцов для перемещения. Отрицательный остается положительным вправо.
  • Аргумент 4 = Высота диапазона (не может быть отрицательным и не является обязательным, по умолчанию 1)
  • Аргумент 5 = Ширина диапазона (не может быть отрицательной и не является обязательным, по умолчанию 1)

в этом случае, диапазон вернулись бы C1 как у нас ни одна строка или столбец не смещение и высота и ширина устанавливается в 1

MATCH функция возвращает индекс, где появляется значение в диапазоне (диапазон должен быть шириной 1 или 1 ячейки)

Cell Screenprint

На основании выше трафаретной печати =MATCH("Group2",D1:F1,0) возвратит 2, как «группа_2» появляется во второй ячейке в D1:F1 диапазоне. («Группа1» вернет 1, «Группа 3» вернет 3, а «Группа4» вернет # Н/Д, поскольку она не существует).

Так на основе этого мы можем поставить функцию MATCH в качестве нашего 2-го аргумента в функции OFFSET и выбрать столбец, соответствующий первый аргумент в функции MATCH.

=OFFSET(C1,0,MATCH("Group2",D1:F1,0),1,1) вернется диапазон E1 как мы сдвинули столбцы 2 из C1 из-за MATCH

=OFFSET(C1,1,MATCH("Group2",D1:F1,0),3,1) теперь будет возвращать обратно E2:E4, как мы увеличили высоту в диапазоне до 3 и ряд смещение на 1.

И, наконец, мы можем изменить значение «Group2» в функции MATCH на значение ячейки, которое будет означать, что диапазон будет динамически изменяться.

Здесь я использовал Cell A2=OFFSET(C1,1,MATCH(A2,D1:F1,0),3,1), поэтому любое значение в ячейке A2 будет использоваться для смещения диапазона.

И последнее, что нужно сделать, это поставить динамический диапазон в проверке (я использовал B2)

Validation Example

Это будет динамически установить диапазон проверки.

Validation Range

Когда я использую OFFSET функцию с несколькими аргументами, и я не уверен, что это возвращение назад правильный выбор, я написал небольшой вспомогательный User Defined Function, что я просто положить в модуле VBA.

Public Function GetAddress(rng As Range) As String 
GetAddress = rng.Address 
End Function 

Это позволяет мне вставлять формулу смещения и возвращать обратно адрес диапазона. Поэтому я могу убедиться, что это правильно.

Get Address Example

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

+0

+1. Для более подробной информации у Контекстуров есть куча таких страниц, как [этот] (http://www.contextures.com/xlDataVal02.html). –

+0

Я не могу использовать эту строку: «= OFFSET (HD2, MATCH (HA2, HD2: HD5,0) -1,0,1,4)», не получив обычного сообщения «Ваша формула содержит сообщение об ошибке». И это после удаления H, поскольку мои столбцы называются «A», «B» и т. Д., А не «HA», «HB» и т. Д. –

+0

@kakemonsteret, если вы обновляете свое исходное сообщение с адресами ячеек, в которые входят ваши списки, i 'изменю мои отпечатки, чтобы они соответствовали. – Sam

Смежные вопросы