| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Как в Excel создать дополнительные фильтры или выпадающие списки в столбце и чтобы данные определенной ячейки были связаны с соседними ячейками по горизонтали?

Как в Excel создать дополнительные фильтры или выпадающие списки в столбце и чтобы данные определенной ячейки были связаны с соседними ячейками по горизонтали?

Ответ
Поиск в этой теме
Непрочитано 12.09.2016, 12:28
Как в Excel создать дополнительные фильтры или выпадающие списки в столбце и чтобы данные определенной ячейки были связаны с соседними ячейками по горизонтали?
ВиталийР
 
Регистрация: 09.09.2016
Сообщений: 31

Уважаемые коллеги!
Помогите пожалуйста в решении следующего вопроса. При создании базы данных по производителям металлопроката, я столкнулся с проблемой создания дополнительного фильтра или выпадающего списка при этом ячейки списка не связаны с соседними ячейками по горизонтали.
Как связать ячейки по горизонтали, так сказать сгруппировать? Это мне нужно для того, чтобы при выборе в выпадающем списке (дополнительном фильтре) «города», в столбце «регион» мне список выдавал конкретный город, а также дилера, телефон и почту из соответственно столбцов «дилер», «телефон», «почта». Цель создания выпадающего списка (дополнительного фильтра) минимизировать расширения высоты строки, данное расширение обусловлено, тем, что каждый производитель имеет более 2000 наименований и в каждом наименовании приходиться прописывать всех дилеров производителя, из-за чего каждая строка одного наименования расширяется значительно, что делает таблицу не компактной, визуально не удобной и трудно читаемой. При создании дополнительного фильтра или выпадающего списка я могу скрыть весь список дилеров, оставив только одну строку в которой я буду выбирать города из этого списка, таким образом я решу вопрос с расширением высоты строк.

Во вложении таблица, в которой я уже создал выпадающий список, но он работает не как фильтр, а также города (столбец «регион») не связаны с соседними ячейками по горизонтали (столбцы: «дилер», «телефон», «почта»).

Пользоваться макросами и массивами не умею. Вариант с гиперссылкой на сайт производителя, а также создание закладок со списком дилеров не подходит.

Вложения
Тип файла: xlsx 12345.xlsx (14.7 Кб, 92 просмотров)

Просмотров: 32745
 
Непрочитано 13.09.2016, 01:51
1 | #21
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Добавил пример связанных списков с динамически изменяемыми диапазонами на VBA. Можно добавлять значения в динамическую таблицу - главное, потом ее отсортировать в порядке возрастания по всем трем столбцам сразу. И при получении фокуса выпадающие списки имеют обновленные значения, причем автоматически отбираются уникальные значения. А без VBA построить хоть какую то БД на базе Excel выльется в:
Цитата:
Сообщение от Enik Посмотреть сообщение
Проблема в том, что там задействованы именованные массивы. А они динамическими не бывают. Иными словами, внёс изменения в БД - будь любезен, переназначь массивы... Это просто убивает.
Вложения
Тип файла: zip Связанные выпадающие списки_пример.zip (23.0 Кб, 43 просмотров)
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.09.2016, 16:14
#22
ВиталийР


 
Регистрация: 09.09.2016
Сообщений: 31


Примерно как то так вижу БД
Вложения
Тип файла: xlsx Образец 1.xlsx (24.6 Кб, 37 просмотров)
ВиталийР вне форума  
 
Непрочитано 13.09.2016, 19:59
1 | #23
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Широкая слишком, имхо. Будет трудновато работать с нею
Сергей812 вне форума  
 
Непрочитано 13.09.2016, 20:50
1 | #24
vrm77


 
Регистрация: 05.03.2014
Сообщений: 181


Согласен с Сергей812 просложности в работе с БД ВиталийР. Но, если, работать с этой таблицей будет ТС, то дискомфорта в работе он испытывать не будет, сам через такое проходил. Для сотрудников делал в ACCESS.
vrm77 вне форума  
 
Автор темы   Непрочитано 13.09.2016, 21:02
#25
ВиталийР


 
Регистрация: 09.09.2016
Сообщений: 31


ну если будет трудно, я же могу данные перенести в access, верно!?
ВиталийР вне форума  
 
Непрочитано 13.09.2016, 21:18
1 | #26
Enik

ГИП
 
Регистрация: 07.06.2015
Сообщений: 1,254


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Добавил пример связанных списков с динамически изменяемыми диапазонами на VBA.
Да, красивое решение! А там без сортировки никак не обойтись? Не то что бы это муторно, но душа ведь просит без лишних телодвижений.

----- добавлено через ~10 мин. -----
Offtop: Добавлю ещё, что требования заказчика к софту обычно выглядят так:
- Чтобы я такая на кнопочку "клац", а оно мне сразу "у-ух", а я вся такая "вау-у-у!"
Enik вне форума  
 
Автор темы   Непрочитано 13.09.2016, 21:31
#27
ВиталийР


 
Регистрация: 09.09.2016
Сообщений: 31


цитата, на пять баллов)))
ВиталийР вне форума  
 
Непрочитано 13.09.2016, 21:44
1 | #28
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Цитата:
Сообщение от Enik Посмотреть сообщение
Да, красивое решение! А там без сортировки никак не обойтись? Не то что бы это муторно, но душа ведь просит без лишних телодвижений
Ну во первых сортировку таблицы можно тоже программно сделать по какому то условию (событию)-пару десятков строк кода, насколько помню. А во вторых - можно и без сортировки, будет кода больше просто. И в списке будет неотсортированный по порядку список уникальных значений. Хотя и это решается. Просто если есть желание все писать в виде кода, то зачем вообще нужен Excel?)
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.09.2016, 21:54
#29
ВиталийР


 
Регистрация: 09.09.2016
Сообщений: 31


Я мазохист, я хочу так, Сергей)

----- добавлено через ~2 мин. -----
Может меня Вы не понимаете!?
Порядок использования БД по пунктам:
1. Выбираю наименование
2. Марку стали
3. Размеры+доп. тех.параметры (производители производят например лист или уголок в огромном количестве размеров, но в тоже время не все размеры которые используются в строительстве, чтобы мне не создавать 200 строк, я хочу все уместить в одной указав интервалом от и до)
Мне выпадает список производителей, которые производят продукцию которая мне нужна, далее я ищу дилеров.
4. Выбираю регион (все круто у меня в таблице, но мне не нравиться высота строки одного наименования из-за большого списка дилеров, который я должен вносить в каждую строку этот список, из-за этого я хочу скрыть этот список и установить дополнительный фильтр в одну ячейку региона дилера)

----- добавлено через ~6 мин. -----
Основной вопрос как создать дополнительные фильтры в столбце "регион" (дилера) при отсутствия такой возможности в рамках эксель, то придумать альтернативный вариант
ВиталийР вне форума  
 
Непрочитано 13.09.2016, 22:09
1 | #30
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


1. Начнем с того, сколько типов наименований, марок сталей и т.д.? Как часто они меняются? Почему не сделать в виде отдельных таблиц, в основной БД выпадающие списки на базе проверок (даже без VBA)?
2. Работа с диапазоном на основе скрытых столбцов - уже писал в другой вашей ветке.
3. По поводу диапазонов:
Цитата:
Сообщение от ВиталийР Посмотреть сообщение
производители производят например лист или уголок в огромном количестве размеров, но в тоже время не все размеры которые используются в строительстве, чтобы мне не создавать 200 строк
ряд размеров как то стандартизирован? Или внутри диапазона 0.2-0.6 у разных производителей может оказаться разный набор сортамента?

p.s. Мазохизм будет, когда забьете туда сортамент - и окажется, что в этой таблице кроме вас никто и не сможет работать)
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.09.2016, 22:19
#31
ВиталийР


 
Регистрация: 09.09.2016
Сообщений: 31


Очень много наименований и марок стали. Не совсем понял второй вопрос, в смысле - меняются? Если завод производит трубу бесшовную больших диаметров, то он не будет через год катать электросварную маленьких диаметров... По множеству причин не удобно будет создавать несколько отдельных таблиц.
С сортаментом уже всё продумано, с этим пока вопросов нет.
ВиталийР вне форума  
 
Непрочитано 13.09.2016, 22:26
1 | #32
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Основной вопрос как создать дополнительные фильтры в столбце "регион" (дилера) при отсутствия такой возможности в рамках эксель, то придумать альтернативный вариант
у вас уже есть фильтр по регионам, а не хотите высокую ячейку производителя - дублируйте имя производителя для каждого дилера. Просто не понимаю, что хотите...
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.09.2016, 22:35
#33
ВиталийР


 
Регистрация: 09.09.2016
Сообщений: 31


Видимо, Сергей, Вы меня совсем не понимаете) В любом случае я Вам очень благодарен за ваше желание мне помочь!
ВиталийР вне форума  
 
Непрочитано 13.09.2016, 22:36
1 | #34
Enik

ГИП
 
Регистрация: 07.06.2015
Сообщений: 1,254


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Просто если есть желание все писать в виде кода, то зачем вообще нужен Excel?)
Я подобные вещи пишу на Си Билдере.

Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Порядок использования БД по пунктам:
1. Выбираю наименование
2. Марку стали
3. Размеры+доп. тех.параметры (производители производят например лист или уголок в огромном количестве размеров, но в тоже время не все размеры которые используются в строительстве, чтобы мне не создавать 200 строк, я хочу все уместить в одной указав интервалом от и до)
Мне выпадает список производителей, которые производят продукцию которая мне нужна, далее я ищу дилеров.
4. Выбираю регион (все круто у меня в таблице, но мне не нравиться высота строки одного наименования из-за большого списка дилеров, который я должен вносить в каждую строку этот список, из-за этого я хочу скрыть этот список и установить дополнительный фильтр в одну ячейку региона дилера)
Я попробую перевести с русского на программерский.

1. Формирование динамического списка 1 путём выборки из двухмерного массива 1 по заданным условиям.
2. Формирование динамического списка 2 путём выборки из двухмерного массива 1 по условию, заданному в динамическом списке 1.
3. Поиск значения в двухмерном массиве 1 по условию, заданному в динамическом списке 2.

----- добавлено через ~5 мин. -----
В расширенном варианте:
-//-//-
4. При формировании динамического списка 1 произвести анализ содержимого двухмерного массива 1 методом поиска подстроки в строке и методом поиска принадлежности значения интервалу.
Enik вне форума  
 
Непрочитано 13.09.2016, 23:36
1 | #35
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


это понятно. Меня вызывает сильнее сомнение в работоспособности варианта ТС при забитых строках данных в количестве многих тысяч. Которые еще забить надо, что при таскании таблицы туда-сюда из-за ее ширины займет тоже немало времени.
Сергей812 вне форума  
 
Непрочитано 14.09.2016, 00:33
1 | #36
Enik

ГИП
 
Регистрация: 07.06.2015
Сообщений: 1,254


Я тоже пока что не вижу прямого решения этой задачи в экселе. Только посредством известного набора костылей.
Enik вне форума  
 
Непрочитано 14.09.2016, 00:47
1 | #37
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Такая таблица может иметь место - как БД на скрытом листе, с которой пользователь напрямую не работает. А на отдельных листах сделаны частичные таблицы для ввода/модификации/выбора, ссылающиеся формулами/макросами на эту главную таблицу и обратно.
Сергей812 вне форума  
 
Непрочитано 14.09.2016, 00:51
1 | #38
Enik

ГИП
 
Регистрация: 07.06.2015
Сообщений: 1,254


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Такая таблица может иметь место - как БД на скрытом листе, с которой пользователь напрямую не работает. А на отдельных листах сделаны частичные таблицы для ввода/модификации/выбора, ссылающиеся формулами/макросами на эту главную таблицу и обратно.
Я тоже так думаю. Нужен промежуточный контейнер, и даже не один. Это из очевидных костылей.

----- добавлено через ~8 мин. -----
Из нестандартных решений приходит в голову разделить эксель на 2 книги: в одной чисто БД, в другой - интерфейс и программный код. Чтобы не захламлять саму изначальную БД.
Enik вне форума  
 
Непрочитано 14.09.2016, 01:11
1 | #39
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Цитата:
Сообщение от Enik Посмотреть сообщение
в одной чисто БД, в другой - интерфейс и программный код. Чтобы не захламлять саму изначальную БД.
вообще то надстройки есть). Но как раз есть смысл, что если подобное делать на Excel - то использовать по возможности функционал листов экселя. И дополнять их кодом vba - заменяя ручные операции пользователя, недостающий функционал. А не пытаться переписать на достаточно медленном VBA гораздо более быстрые встроенные операции на листах)
Сергей812 вне форума  
 
Непрочитано 14.09.2016, 01:14
1 | #40
Enik

ГИП
 
Регистрация: 07.06.2015
Сообщений: 1,254


И тогда уже программными средствами переписывать данные в нужном виде из исходной БД в контейнер в файл с программным кодом. А потом уже из контейнера получать нужную информацию простейшими методами.

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Но как раз есть смысл, что если подобное делать на Excel - то использовать по возможности функционал листов экселя.
Ну так я что и пытаюсь сделать. Обойтись голым экселем. Ну не умею я скрипты писать, c++ изучал.

----- добавлено через ~7 мин. -----
Я часто пишу различные расчётные программы в экселе. И каждый раз всё упирается в то, что листы захламляются полностью. Этого нужно избежать.

----- добавлено через ~21 мин. -----
В общем, завтра поколдую, выложу.
Enik вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Как в Excel создать дополнительные фильтры или выпадающие списки в столбце и чтобы данные определенной ячейки были связаны с соседними ячейками по горизонтали?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как извлечь данные из файла Excel LexaI Программирование 14 12.04.2014 20:14
Подскажите как в Excel совместить две ячейки в одну Львиное сердце Прочее. Программное обеспечение 5 31.08.2009 13:58
Ламерский вопрос по Excel: как сделать, чтобы не слетало форматирование исходных ячеек при вырезании и перетаскивании? kp+ Прочее. Программное обеспечение 7 23.02.2009 15:27
Сохранения адреса ячейки в Excel Малюк Прочее. Программное обеспечение 2 30.03.2008 09:33