как создать в эксель расскатывающийся список?
мне нужно в ячейке создать возможность выбора из списка записей нужную. Затем я хочу сделать, чтобы в зависимости от того что выбрано, в нужных клетках появлялись соответствующие цифры. Как сделать первое из моего замысла?
Спасибо большое заранее.
|
Перейдите на вкладку "разработчик", "Вставить" - Элемент управления "Поле со списком". В формате объекта задайте соответствие диапазону ячеек и связанную ячейку. Если не понятно - попозже (к вечеру) выложу примерный файлик.
|
что то не могу найти вкладку разработчик. Вы с названием не ошиблись?
|
нашел. Но теперь я не могу решить вторую часть своего замысла. Поможете?
Описываю подробнее. Допустим есть 3 строки по 5 столбцов с данными. Этим расскатывающимся списком я выбираю нужную мне строку, и данные из этой строки должны попасть в другую, нужную мне строку.
|
Выложите примерный файл, я посмотрю вечером. Еще подсказка: покурите функцию "ИНДЕКС"
|
суть там такая. Расскатывающийся список я сделал как вы сказали. Сейчас там выбрано 8П. В таблице видно что этому соответствуют некоторые цифры. И эти цифры нужно мне чтобы появились в желтых клетках. При выборе других значений швеллеров соответственно в желтых клетках должны меняться цифры. Спасибо за помощь.
|
Вложений: 3
В файле вы можете прикрыть ячейку D4 элементом управления (чтобы ее не было видно). Внимательно изучите формулы в диапазоне B3:G3
Будут вопросы - спрашивайте.
Pozia, прошу прощения - делал в спешке. Если в функции ИНДЕКС вместо номеров столбцов (1, 2,....6) поставить 0, то формулы в ячейках B3:G3 будет одинаковыми, а следовательно их можно размножить "перетаскиванием", и они станут независимы от количества столбцов. Но это в том случае, если таблица, в которую переносятся данные находится строго над или под таблицей с данными. В другом случае столбцы нужно нумеровать.
Как вы заметили, нумерация столбцов начинается с 1.
|
okshef, что то вечером плохо перевариваю сказанную вами информацию... может поправите эксель чтоб я воочию увидел?
|
Файл поменял - три варианта и комментарии
|
Вложений: 1
Во вложении альтернативный вариант - лист my. Думаю, он более прозрачный и наращиваемый.
- Вместо раскрывающегося списка использовано условие на значение (создается Данные - Проверка данных - Список)
- Присвоены имена, обращения в формулах идет по именам, что гибче
- Использована функция ВПР
|
У ВПР есть известные ограничения по использованию - сортировка диапазона поиска и нахождение столбца (крайний левый), так что насчет гибкости - вопрос спорный, а вот насчет проверки данных - хорошая мысль: без использования элементов управления.
Есть вариант использования формул массива, но это - для особо продвинутых, да и замена данных - дело муторное.
|
Цитата:
Цитата okshef
У ВПР есть известные ограничения по использованию - сортировка диапазона поиска и нахождение столбца (крайний левый) »
|
второй пункт - конечно, а сортировка, если я не ошибаюсь, важна только при использовании интервального просмотра, который не нужен для данной задачи
|
okshef, ваш метод для меня просто находка. Спасибо. Как этим методом использовать горизонтальные таблицы данных, а не как в моем примере вертикальную?
|
Если я правильно понял, нужно сформировать диапазон выборки по горизонтальной строке? имхо, Excel этого делать не умеет. Поэтому нужно либо транспонировать диапазон, чтобы строки стали столбцами, либо писать макросы.
Или я не понял?
|
Цитата:
Цитата okshef
диапазон выборки по горизонтальной строке? »
|
угу
Цитата:
Цитата okshef
нужно либо транспонировать диапазон »
|
эт сложно?
эт видимо круто для меня и не принципиально сейчас
|
Цитата:
Цитата Pozia
Как этим методом использовать горизонтальные таблицы данных, а не как в моем примере вертикальную? »
|
Возможно, достаточно в моем варианте заменить ВПР на ГПР.
Если этот вариант не катит, то точнее пояснить, что имеется в виду.
|
v12345, как всегда - спасибо за напоминание.
Pozia, файл в посте 9 обновил - Рама-mod.xls.
|
okshef, не совсем то, что мне нужно, ну да ладно... единственное скажите как вы сделали чтобы стрелка в раскрывающемся списке появлялась при нажатии на клетку а не все время там была?
v12345, по вашему методу не правильно работает. Например, если выбрать сортировку по R=6 а затем по h=65 то не те значения выставятся.
|
Pozia, в сообщении у v12345 это написано:
Цитата:
Цитата v12345
Вместо раскрывающегося списка использовано условие на значение (создается Данные - Проверка данных - Список) »
|
затем выбирается диапазон.
объясните тогда подробнее. В принципе, в файле изложена только методика.
|
okshef, ну все тоже как изначально, только данные в таблице идут не сверху вниз, а слева направо.
|
То есть в верхней строчке нижней таблицы: 5П 6,5П 8П 10П
А в левом столбце
h
b
s
t
R
r1
Так?
А результат в верхней таблице в виде строчки h b s t R r1?
|
угу
Цитата:
Цитата okshef
А результат в верхней таблице в виде строчки h b s t R r1? »
|
в данном случае да, но предполагается что в будущем мне понадобится и так и так (результат в верхней таблице)
okshef, я в теме еще одну тему с головоломкой для меня создал. мот глянете. она для меня более сейчас приоритетна.
|
okshef, все понял кроме того как вы делаете эту хитрую кнопку )
|
okshef, клевая инструкция!!! ) Назрел еще вопрос. Простите за назойливость. Вот есть у меня ряд чисел - 2 10 25 34 (к примеру). Можно ли организовать раскатывающийся список на эти числа (по обеим методикам получения кнопки) не делая при этом таблицу данных из этих числе. То есть чтобы раскатывающийся список содержал в себе эти числа, а на эту клетку у меня будет ссылаться формула и будут производиться расчеты.
|
Без таблицы, не используя макросы, нельзя. Где вы будете хранить ваши числа? Можете использовать другой лист, чтобы на "расчетном" листе не было "постороннего"
|
okshef, а с макросами сложно?
И еще вопрос по последнему виду раскатывающего списка через проверку данных. Как увеличить список свыше 8 по умолчанию?
|
Pozia, простите мою сегодняшнюю усталость - Учебник VBA
|
okshef, ну хоть буду знать как называется в чем разбираться. но пака не до подробного изучения. сейчас нужны ответы на вопросы для работы. будет время попробую глубже изучить эксель и VBA ). А по поводу
Цитата:
Цитата Pozia
И еще вопрос по последнему виду раскатывающего списка через проверку данных. Как увеличить список свыше 8 по умолчанию? »
|
не подскажете?
|
Pozia, у меня эти списки создаются без ограничений
можете дать документ, где есть ограничения?
|
метод актив больше всего понравился своей гибкостью настроек. Не могу понять только как сделать чтобы в целевой ячейки выводилось не содержание массива, а номер выбранной строки?
|
Тогда нужен не ActiveX, а элемент управления
|
и почему мелкософт не могут сделать все до конца? Чтобы все везде было. Ладно... Буду условиями добивать.
|
okshef, вы мне советовали функцию Индекс. А как будет обратная команда? Список полученный через проверку параметров дает сразу число из таблицы, а мне уже нужен номер строки из этой таблицы )
|
Pozia, мне проще вам дать макрос
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
R = Target.Row
C = Target.Column
MsgBox "Строка=" & R & "; Столбец=" & C
End Sub
Для изучения: создайте новую книгу, скопируйте текст выше, откройте редактор VBA, откройте "Лист1", вставьте скопированный текст, перейдите из редактора VBA на Лист 1 в книге и начните щелкать по ячейкам.
Свойство Target.Row возвращает номер строки выделенной ячейки.
P.S. А номер строки возвращает функция СТРОКА. Подумайте, как ее "прикрутить" к вашей задаче.
|
Время: 14:28.
© OSzone.net 2001-