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

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

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

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

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

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

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

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

Просмотров: 34204
 
Непрочитано 12.09.2016, 12:40
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
При создании базы данных
...я бы использовал именно базы данных, а не табличный процессор.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 12.09.2016, 12:46
#3
ВиталийР


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


Приветствую Вас, Алексей! К сожалению не обладаю такие знаниями и навыками, чтобы создать такую базу, да и к тому же хочу создать базу простую и удобную в пользовании, как автомат Калашников.
ВиталийР вне форума  
 
Непрочитано 12.09.2016, 12:53
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


С моей точки зрения Excel для таких задач подходит достаточно слабо. Access, скорее всего, окажется удобнее (по крайней мере не надо будет многократно вбивать одну и ту же информацию).
А так - попробуй сводную таблицу. Но я не уверен, что это полностью подойдет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.09.2016, 13:01
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


«Мыши плакали, кололись, но продолжали грызть кактус»
trir вне форума  
 
Непрочитано 12.09.2016, 13:40
#6
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 7,340


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Во вложении таблица, в которой я уже создал выпадающий список, но он работает не как фильтр, а также города (столбец «регион») не связаны с соседними ячейками по горизонтали (столбцы: «дилер», «телефон», «почта»).
опять непонятное описание. так примерно?
Вложения
Тип файла: xlsx 12345.xlsx (16.6 Кб, 59 просмотров)
v.psk вне форума  
 
Автор темы   Непрочитано 12.09.2016, 14:20
#7
ВиталийР


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


Приветствую тебя, v.psk! Ну извини, как смог так и выразил текстом свою мысль) Не так понял ты меня)
ВиталийР вне форума  
 
Непрочитано 12.09.2016, 19:04
#8
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


ВиталийР, тебе прямой путь на "Планету Excel".
Там есть отличный форум, там помогут - сто процентов.
http://www.planetaexcel.ru/forum/
Offtop: Кулик Алексей aka kpblc, похоже, на форуме DWG.RU появилась необходимость создать отдельную ветку по Excel: вопросов по чистому Excel, без связи с AutoCAD и др. приложениями, - всё больше и больше )
MrBrown вне форума  
 
Непрочитано 12.09.2016, 19:22
#9
Сергей812


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


В экселе можно извратиться, но без желания
Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Пользоваться макросами и массивами не умею
это будет очень громоздкая штука с полу вменяемым интерфейсом. С макросами можно сделать то же контекстное меню свое, где будет перейти к списку дилеров для конкретного производителя. Или сделать жёсткими гиперссылками из одной таблицы на 1-м листе (список производителей) на списки дилеров. А есть еще группировка данных, например - чтобы на одном листе

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от MrBrown Посмотреть сообщение
Offtop: Кулик Алексей aka kpblc, похоже, на форуме DWG.RU появилась необходимость создать отдельную ветку по Excel: вопросов по чистому Excel, без связи с AutoCAD и др. приложениями, - всё больше и больше
смысла нет, имхо. К выпрашиванию лиспиков присоединятся выпрашиватели макросов и формул) По экселю материалов в инете - это просто надо не хотеть найти решение или подсказку
Сергей812 вне форума  
 
Непрочитано 12.09.2016, 19:49
#10
Enik

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


Могу ошибаться, но вроде бы эта фигня называется "связанные списки". Это чтобы формировать каждый последующий список на основании предыдущего(щих). На завершающем этапе выборка из БД по нескольким критериям (выбранным из списков) осуществляется через формулы массива.

Делал я такое.

Реализуемо с помощью базового функционала excel. И даже выглядит красиво в конечном итоге. Но простым и изящным такое решение уж точно не назовешь...

----- добавлено через ~3 мин. -----
Но есть одно ограничение. Для динамически формируемых массивов и БД это не подходит. Следовательно, и вам не подойдёт.
Enik вне форума  
 
Непрочитано 12.09.2016, 19:53
#11
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
Но простым и изящным такое решение уж точно не назовешь...
а с учетом по две тысячи строк сортамента на производителя...
Сергей812 вне форума  
 
Непрочитано 12.09.2016, 20:07
#12
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а с учетом по две тысячи строк сортамента на производителя...
Так ведь проблема не в этом. Хоть миллиард. Проблема в том, что там задействованы именованные массивы. А они динамическими не бывают. Иными словами, внёс изменения в БД - будь любезен, переназначь массивы... Это просто убивает.

Самое лучшее, что можно вымучать из экселя таким способом - это калькулятор металлопроката (лежит где-то в глубинах download). Всё ж таки ГОСТы не каждый день меняются...
Enik вне форума  
 
Непрочитано 12.09.2016, 20:08
#13
Сергей812


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


Связанные списки в Excel - цените трудоемкость с учетом своих объемов)

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от Enik Посмотреть сообщение
Самое лучшее, что можно вымучать из экселя таким способом - это калькулятор металлопроката.
можно и подобное - только это надо разбивать на отдельные таблицы, продумывать связи между ними - а топик-стартер пошел по пути прямого наращивания количества строк и столбцов. А ведь еще не каждый дилер поставляет весь сортамент производителя - т.е на каждую строчку сортамента может быть какой то свой набор дилеров. И все это надо еще умудриться ввести - а ТС рассматривает только проблему вывода/поиска.
Сергей812 вне форума  
 
Непрочитано 12.09.2016, 20:27
#14
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
можно и подобное - только это надо разбивать на отдельные таблицы, продумывать связи между ними
Агась, таблицы категорий, подкатегорий, подподкатегорий... Нужно придумать алгоритм раскрытия списков, который в любом случае будет линейным и в одну сторону (чего, естественно, будет не достаточно).

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

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
топик-стартер пошел по пути прямого наращивания количества строк и столбцов. А ведь еще не каждый дилер поставляет весь сортамент производителя - т.е на каждую строчку сортамента может быть какой то свой набор дилеров. И все это надо еще умудриться ввести - а ТС рассматривает только проблему вывода/поиска.
Ход мысли ТС мне понятен. Но Эксель таким функционалом в явном виде не обладает.
Enik вне форума  
 
Автор темы   Непрочитано 12.09.2016, 20:49
#15
ВиталийР


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


Зарегистрировался на куче форумах разместил этот вопрос, не поверите, только один ответ пришел! Тут самый живой форум с действительно специалистами. Ребят я просто не общался на форумах раньше, может мне кто поможет такую таблицу в екселе составить и скажите сколько ваша работа будет стоить!? Очень нужно решить два вопроса с дилерами (выпадающем списке) и вопрос который я ранее опубликовывал тема про интервалы чисел в ячейке!? Не знаю корректно ли о деньгах писать в подобных форумах...
ВиталийР вне форума  
 
Непрочитано 12.09.2016, 21:00
#16
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


о деньгах сюда
только это тупиковый путь
trir вне форума  
 
Непрочитано 12.09.2016, 21:13
#17
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 7,340


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Зарегистрировался на куче форумах разместил этот вопрос, не поверите, только один ответ пришел! Тут самый живой форум с действительно специалистами. Ребят я просто не общался на форумах раньше, может мне кто поможет такую таблицу в екселе составить и скажите сколько ваша работа будет стоить!? Очень нужно решить два вопроса с дилерами (выпадающем списке) и вопрос который я ранее опубликовывал тема про интервалы чисел в ячейке!? Не знаю корректно ли о деньгах писать в подобных форумах...
Опять же советую ЧЁТКО ПРОДУМАТЬ И ОПИСАТЬ алгоритм работы. Для форума или как техзадание... и да... предпочтительно бы прислушиваться к советам по организации базы данных.
v.psk вне форума  
 
Автор темы   Непрочитано 12.09.2016, 21:50
#18
ВиталийР


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


да я в принципе все продумал, вот два момента только решить надо как то
ВиталийР вне форума  
 
Непрочитано 12.09.2016, 21:51
#19
Сергей812


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


Вообще то динамические таблицы в экселе и появились как некий суррогат БД для тех, кто по каким то причинам не может в том же access сделать)

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от ВиталийР Посмотреть сообщение
да я в принципе все продумал, вот два момента только решить надо как то
если в том виде-как у вас во вложении.. ну не до конца явно)
Сергей812 вне форума  
 
Непрочитано 12.09.2016, 22:06
#20
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Цитата:
Сообщение от MrBrown Посмотреть сообщение
Кулик Алексей aka kpblc, похоже, на форуме DWG.RU появилась необходимость создать отдельную ветку по Excel: вопросов по чистому Excel, без связи с AutoCAD и др. приложениями, - всё больше и больше
В "Книгу жалоб и предложений" вноси идею. Если Админ поддержит - то можно будет и поиграться
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.09.2016, 01:51
1 | #21
Сергей812


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


Добавил пример связанных списков с динамически изменяемыми диапазонами на VBA. Можно добавлять значения в динамическую таблицу - главное, потом ее отсортировать в порядке возрастания по всем трем столбцам сразу. И при получении фокуса выпадающие списки имеют обновленные значения, причем автоматически отбираются уникальные значения. А без VBA построить хоть какую то БД на базе Excel выльется в:
Цитата:
Сообщение от Enik Посмотреть сообщение
Проблема в том, что там задействованы именованные массивы. А они динамическими не бывают. Иными словами, внёс изменения в БД - будь любезен, переназначь массивы... Это просто убивает.

Последний раз редактировалось Сергей812, 13.03.2025 в 14:33.
Сергей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,499


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


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


Согласен с Сергей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,499


Цитата:
Сообщение от 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,499


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,499


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Основной вопрос как создать дополнительные фильтры в столбце "регион" (дилера) при отсутствия такой возможности в рамках эксель, то придумать альтернативный вариант
у вас уже есть фильтр по регионам, а не хотите высокую ячейку производителя - дублируйте имя производителя для каждого дилера. Просто не понимаю, что хотите...
Сергей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,499


это понятно. Меня вызывает сильнее сомнение в работоспособности варианта ТС при забитых строках данных в количестве многих тысяч. Которые еще забить надо, что при таскании таблицы туда-сюда из-за ее ширины займет тоже немало времени.
Сергей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,499


Такая таблица может иметь место - как БД на скрытом листе, с которой пользователь напрямую не работает. А на отдельных листах сделаны частичные таблицы для ввода/модификации/выбора, ссылающиеся формулами/макросами на эту главную таблицу и обратно.
Сергей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,499


Цитата:
Сообщение от 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 вне форума  
 
Непрочитано 14.09.2016, 01:58
1 | #41
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
И каждый раз всё упирается в то, что листы захламляются полностью
В каком смысле - захламляются?

А применительно к моему посту #39 немного подкорректировал свой пример связанных списков - теперь и "БД", и ввод, и авто сортировка после добавления. На текущем этапе я так вижу реализацию интерфейса в Excel. Проверку на дубликаты при вводе не делал - это чисто техническая проблема, лень код писать)

Последний раз редактировалось Сергей812, 13.03.2025 в 14:33.
Сергей812 вне форума  
 
Непрочитано 14.09.2016, 07:27
1 | #42
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Цитата:
Из нестандартных решений приходит в голову разделить эксель на 2 книги: в одной чисто БД, в другой - интерфейс и программный код. Чтобы не захламлять саму изначальную БД.
А можно все данные хранить в Access, а Excel использовать как интерфейс
trir вне форума  
 
Непрочитано 14.09.2016, 08:33
1 | #43
Сергей812


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


Если Access есть на рабочем месте. В свое время урезанный профессиональный офис Excel+Word можно было вообще за пару тысяч купить по акциям)
Сергей812 вне форума  
 
Непрочитано 14.09.2016, 08:58
1 | #44
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


тогда сгодится любая СУБД
trir вне форума  
 
Непрочитано 14.09.2016, 17:13
1 | #45
Сергей812


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


вы серьезно интерфейс хотите делать в Excel для СУБД?
Сергей812 вне форума  
 
Непрочитано 14.09.2016, 17:15
1 | #46
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


это не сложнее, чем то, что тут предлагали
trir вне форума  
 
Непрочитано 14.09.2016, 17:44
1 | #47
Сергей812


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


ну для ТС, подозреваю, это все задачи одной сложности)
Сергей812 вне форума  
 
Непрочитано 15.09.2016, 01:05
1 | #48
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
В каком смысле - захламляются?
Когда начинаешь добавлять в эксель проверку значений и условий, защиту от дурака и условное форматирование (в попытках сделать программу дружелюбной для пользователя), то вскоре и сам запутываешься. Принцип KISS никто не отменял. Приходится ограничивать свои хотелки и писать либо калькуляции, либо простенькие расчёты.

У меня давно уже пылятся на винте различные вкусности. Инженерные расчёты статически неопределимые систем с построением эпюр, интегралы, решения систем уравнений матричным способом... Всё в голом экселе. Но толку от этого никакого, потому что никто в этом не разберётся, кроме меня самого. В экселе я только раз выгодно загнал инженерный расчёт по гидравлике. И то только потому, что догадался сделать к нему интерфейс. Надо бы всё в Си Билдер перегнать... Но лень

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А применительно к моему посту #39 немного подкорректировал свой пример связанных списков - теперь и "БД", и ввод, и авто сортировка после добавления. На текущем этапе я так вижу реализацию интерфейса в Excel. Проверку на дубликаты при вводе не делал - это чисто техническая проблема, лень код писать)
А мне и так нравится. Всё по красоте
Enik вне форума  
 
Непрочитано 15.09.2016, 01:09
1 | #49
Enik

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


Вот, написал небольшую базу в экселе. Вроде бы она делает всё, что нужно ТС. Даже сортировать ничего не надо.
Вложения
Тип файла: xlsx БД.xlsx (53.0 Кб, 42 просмотров)
Enik вне форума  
 
Непрочитано 15.09.2016, 09:58
1 | #50
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
Когда начинаешь добавлять в эксель проверку значений и условий, защиту от дурака и условное форматирование (в попытках сделать программу дружелюбной для пользователя), то вскоре и сам запутываешься
Так опять же, ничто не мешает защитить лист, кроме ячеек ввода - а они скрыты в обычном режиме (скрыты строки с ними). Защищаться от "дурака" можно постфактум по последствиям, а можно превентивно - просто не давая ему возможности совершить деструктивные действия. От инициативного "дурака" это уже не спасет, конечно)
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.09.2016, 10:57
#51
ВиталийР


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


Приветствую тебя, Enik!
Спасибо тебе большое, но...
Я посмотрел БД которую ты выложил, такой вариант не подходит по следующим причинам:
1. В твоем варианте БД мне надо выбирать производителя в первую очередь. Не часто в спецификациях или заявках указывают материал и его производителя, в моем варианте основная суть найти производителя и ближайший регион к строительному объекту, где находиться дилер. ЕСли я в таком варианте не выбираю производителя в поиске, не поиске ничего не выдаст.
2. В твоем варианте БД мне надо выбирать регион в БД будет более тысячи городов, в твоем поиске, если я выбрал материал и производителя, мне будет выпадать в фильтре весь список городов из таблице, если у искомого материала, далее производителя, всего два дилера, то мне придется открыть 3000 городов чтобы определить в каких регионах у производителя есть дилеры.
3. То же самое и с колонкой "продукция", я не всегда могу знать точные параметры наименования и мне нужно выбирать из фильтра, или допустим подобрать аналогичную продукцию, мне для согласования нужно понимать какой шаг отклонения допустим и т.д.
4. Мне нужно искать продукцию по фильтрам а не в поиске или как правильно это называется на языке программирования.
В твоем варианте БД, ты частично решаешь проблемы которые "озвучены" в теме, но не учитываешь мой вариант БД, которую я создавал в определенном приоритетном порядке взаимодействия для выполнения конкретных задач, которые я тут указал.
ВиталийР вне форума  
 
Непрочитано 15.09.2016, 11:41
1 | #52
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


может просто сайт сделать
trir вне форума  
 
Непрочитано 15.09.2016, 11:52
1 | #53
Сергей812


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


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

Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
может просто сайт сделать
Да 1С поднять и запрограммировать - чего уж мелочиться то)
Сергей812 вне форума  
 
Непрочитано 15.09.2016, 12:02
1 | #54
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Offtop:
Цитата:
Да 1С поднять и запрограммировать - чего уж мелочиться то)
на сайте можно сделать выбор на карте, в 1С это сильно геморно
trir вне форума  
 
Непрочитано 15.09.2016, 12:24
1 | #55
Сергей812


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


да все это и в экселе можно сделать - только нет желания вникать в хотелки ТС. Выдаст подробный алгоритм - может что-то и сдвинется. По условию:
Цитата:
Сообщение от ВиталийР Посмотреть сообщение
в моем варианте основная суть найти производителя и ближайший регион к строительному объекту
подразумевается еще БД объектов, где будет указаны параметры объектов, включая местоположение. И БД расстояний между регионами (почему регион, кстати-если там города) и возможность доставки каким видом транспорта. Т.е. элементы логистики
Сергей812 вне форума  
 
Непрочитано 15.09.2016, 12:31
1 | #56
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Цитата:
И БД расстояний между регионами (почему регион, кстати-если там города) и возможность доставки каким видом транспорта. Т.е. элементы логистики
скорее уже дорожный граф
trir вне форума  
 
Непрочитано 15.09.2016, 12:55
1 | #57
Сергей812


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


Цитата:
Сообщение от trir Посмотреть сообщение
скорее уже дорожный граф
ну полноценную ГИС на базе Excel создавать..) А просто таблицы-матрицы вполне можно. Но ТС, судя по цифрам, хочет в одну таблицу запихать десятки тысяч строк данных и дальше непонятно чего хочет. По сути из его варианта БД уже все варианты предложены: разбить диапазоны на граничные условия, далее в полях ввода вводить (выбирать из падающего списка), фильтровать по региону, по типу и т.д. В результате получит список производителей с указанным сортаментом в указанном регионе. Что он еще хочет?
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.09.2016, 15:38
#58
ВиталийР


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


13.09.2016, 21:54

#29 ☆
ВиталийР


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



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

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

----- добавлено через ~6 мин. -----
Основной вопрос как создать дополнительные фильтры в столбце "регион" (дилера) при отсутствия такой возможности в рамках эксель, то придумать альтернативный вариант
*

----- добавлено через ~3 мин. -----
http://www.cyberforum.ru/ms-excel/th...ml#post9536699
Вот на этом форуме девушка предложила вариант наиболее приближенный, к тому что я хочу, но всё равно нет.
Мои пояснения по её варианту в переписке форума есть

----- добавлено через ~5 мин. -----
Всё участникам данной темы выражаю своё уважение и восхищение вашему терпению и желанию помочь!!! Желаю хорошего дня!
ВиталийР вне форума  
 
Непрочитано 15.09.2016, 15:51
1 | #59
Сергей812


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


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

Цитата:
Сообщение от ВиталийР Посмотреть сообщение
но мне не нравиться высота строки одного наименования из-за большого списка дилеров, который я должен вносить в каждую строку этот список
так дублируйте параметры производителя в каждую строчку с дилером, и потом работайте с таблицей через фильтры. Если все хотите в одной таблице. Хотя напрашивается из-за объемов и удобства поддержки в дальнейшем разбитие на таблицы.
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.09.2016, 16:46
#60
ВиталийР


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


Так в том то и дело, что если прописывать одно и тоже наименование прописывать в том количестве строк, сколько производитель имеет дилеров+дилеры еще могут быть сетевой компании, которая представлена в каждом регионе страны грубо говоря, то мне допустим при выборе листа с маркой стали 09Г2С с толщиной листа 4, будет выпадать список из 300 строк только одного производителя, прибавим еще 20 производителей того же материалы, у меня уже будет 6000 строк одного и того же наименования. А также касаемо моего второго вопроса, по интервалам чисел в ячейке, допустим лист с маркой стали 09Г2С производитель производить с толщиной листа 2, 3, 4, и до 40, (а если взять например трубу еще и диаметры нужно учесть), также ширина, длина и так далее, это еще 6000 позиций того же наименования только с различными размерами. Вот эти два момента я хочу упростить/оптимизировать.

----- добавлено через ~4 мин. -----
касаемо списка дилеров, я хочу скрыть строки дилеров, оставив при этом одну установив на ней фильтр для выбора из списка нужного региона, но эксель мне не дает создать дополнительные фильтры в виду того что они уже установлены в заголовках столбцов.
по интервалам мне нужно каким то образом где-то прописать формулы или еще что-нибудь чтобы фильтр распознавал искомое число например 8 в интервале 2 - 40
ВиталийР вне форума  
 
Непрочитано 15.09.2016, 16:57
#61
Сергей812


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


1. Надо разделять таблицу производителей и таблицу дилеров. В БД есть тоже главная таблица, вторичные..
2. "по интервалам мне нужно каким то образом где-то прописать формулы или еще что-нибудь чтобы фильтр распознавал искомое число например 8 в интервале 2 - 40"
писал же ранее - три столбца, в двух формулами вытаскиваете граничные условия, в третьих формула проверки - попадает ли число, введенное в ячейку над таблицей в диапазон. А можно даже без первых двух столбцов - все в одну формулу написать.
Сергей812 вне форума  
 
Непрочитано 15.09.2016, 16:58
#62
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


А теперь скажи "здрасьте" реляционным базам данных и SQL.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.09.2016, 17:07
#63
Сергей812


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А теперь скажи "здрасьте" реляционным базам данных и SQL.
Алексей, я думаю - что и в экселе можно сделать подобную задачу, но не одними базовыми функциями листа и не в одной таблице, как хочет ТС)
Сергей812 вне форума  
 
Непрочитано 15.09.2016, 18:43
#64
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Алексей, я думаю - что и в экселе можно сделать подобную задачу, но не одними базовыми функциями листа и не в одной таблице, как хочет ТС)
Можно, но чрезвычайно сложную и ненадежную, как кремневое ружье. А ТС хочет "как автомат Калашникова".

Всё это очень просто решается в любой настоящей среде программирования (VC, Delphi, Builder и т.п.), причем можно даже обойтись и без собственного кода, или с минимумом его. Но для тех, кто этим не хочет заниматься, специально придумана Access. И она нисколько не сложнее Excel.
ShaggyDoc вне форума  
 
Непрочитано 15.09.2016, 18:44
#65
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


в Excel можно и ассемблер реализовать
trir вне форума  
 
Непрочитано 15.09.2016, 18:44
#66
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Защищаться от "дурака" можно постфактум по последствиям, а можно превентивно - просто не давая ему возможности совершить деструктивные действия.
У меня обычно так: превентивная защита - это блокирование ячеек с формулами, а постфактум - это куча условий, проверяющих вводимые значения на "адекватность". Типа того, что глубина траншеи не может быть меньше нуля.

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

Цитата:
Сообщение от ВиталийР Посмотреть сообщение
В твоем варианте БД, ты частично решаешь проблемы которые "озвучены" в теме, но не учитываешь мой вариант БД, которую я создавал в определенном приоритетном порядке взаимодействия для выполнения конкретных задач, которые я тут указал.
Погоди, не торопи события. Сейчас я выложил решение, так сказать, в общем виде. Чтобы тут народ посмотрел и, может быть, что-то предложил/доработал.
Опять же, делать тебе вот так сразу готовую базу, как ты хочешь - это невозможно. Сейчас я тебе продемонстрировал, что это в принципе решаемо. Ты посмотрел, что-то понял, что-то - нет. Какие-то моменты уточнил. И дальше будешь уточнять. А я буду искать решение.

Пойми, процесс написания программы - он всегда динамичный. Все работают в тесной связке. И по мере приближения к результату меняется/уточняется ТЗ.

Насчёт интервалов - я тебе продемонстрировал решение в моей БД. На предмет вхождения в интервал, и на соответствие значению из списка, и на точное соответствие. Посмотри повнимательнее.

И ещё. У тебя не получится всё сделать в одной таблице. Нужно разбивать на отдельные таблицы (как у меня в примере) со строгими стандартами их заполнения. Например, путём выбора из заранее заданных списков (см. пример).
Enik вне форума  
 
Непрочитано 15.09.2016, 18:49
#67
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
1. Надо разделять таблицу производителей и таблицу дилеров. В БД есть тоже главная таблица, вторичные..
2. "по интервалам мне нужно каким то образом где-то прописать формулы или еще что-нибудь чтобы фильтр распознавал искомое число например 8 в интервале 2 - 40"
Ну написал же уже в примере всё это. С интервалами - столбец "сорт". Лист " БД", там справа от самой БД условие прописано.
Enik вне форума  
 
Автор темы   Непрочитано 15.09.2016, 19:01
#68
ВиталийР


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


Походу надо просто записываться на курсы Excel и Access и не делать голову людям) Или найти специалиста который за денежку такую базу разработает и объяснит, как ей пользоваться корректировать/дополнять и так далее. Я думал, что мои вопросы решаются более простым и доступным способом для пользователя Excel с базовыми знаниями.
ВиталийР вне форума  
 
Непрочитано 15.09.2016, 19:12
#69
Сергей812


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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Можно, но чрезвычайно сложную и ненадежную, как кремневое ружье.
Ну если не использовать функционал экселя выше 2003 версии (как видно из примера ТС) - то да, извращаться можно будет долго и разнообразно)

Цитата:
Сообщение от Enik Посмотреть сообщение
В экселе - технически не решаемо. Опять же, я не считаю, что это критично. Забудь про фильтры. Их функционал в экселе сильно ограничен.
как основное средство-да, как вспомогательный элемент вместе с формулами - вполне рабочее.

Цитата:
Сообщение от Enik Посмотреть сообщение
Ну написал же уже в примере всё это. С интервалами - столбец "сорт". Лист " БД", там справа от самой БД условие прописано.
Ну я не так внимательно смотрел, честно говоря, сорри)

----- добавлено через ~16 мин. -----
Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Походу надо просто записываться на курсы Excel и Access и не делать голову людям)
Access особо не интересовался ввиду патологического отсутствия на рабочем месте, а для экселя:
http://www.planetaexcel.ru
http://office-guru.ru/excel/samouchi...l-vba-453.html
http://www.excel-vba.ru/
если сами не разберетесь, тогда уж тратьте время и деньги на курсы, имхо
Сергей812 вне форума  
 
Непрочитано 15.09.2016, 21:14
#70
Enik

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


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Или найти специалиста который за денежку такую базу разработает и объяснит, как ей пользоваться корректировать/дополнять и так далее.
Не найдёте. Будет требовать подробное ТЗ, жаловаться на нестыковки и отсутствие видения конечной цели. А потом возьмёт аванс и <...> Мат на форуме запрещен! /kpblc/. Я на этом инвестора из Израиля потерял.

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как основное средство-да, как вспомогательный элемент вместе с формулами - вполне рабочее.
Видимо, тут моих познаний недостаточно. Я не знаю, как через формулы же связать фильтры с формулами.
В простейшем случае, кмк, нужно либо одно, либо другое.

Последний раз редактировалось Кулик Алексей aka kpblc, 16.09.2016 в 00:26.
Enik вне форума  
 
Непрочитано 15.09.2016, 21:21
#71
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
как через формулы же связать фильтры с формулами.
насколько знаю, нельзя через формулы. Просто VBA рассматриваю как неотъемлемую часть Excel, а там можно.

Цитата:
Сообщение от Enik Посмотреть сообщение
Будет требовать подробное ТЗ
так и должно быть. Это в задании несколько строк изменить, а в книге эксель может повлечь пересмотр половины ее концепции.
Сергей812 вне форума  
 
Непрочитано 15.09.2016, 22:04
#72
Enik

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


Наверное, стоит сказать, что в программировании я часто выступаю как в роли заказчика, так и в роли исполнителя. И время от времени возникает одна и та же канитель.
Если я заказчик, то я думаю так: нужно быть полным аутистом, чтобы написать ТЗ на 200 листов, внести аванс и ждать, пока ленивый программер почешется.
Когда я исполнитель, возникает следующее: очень быстро приходит мысль, что нужно быть полным аутистом, чтобы под каждую хотелку заказчика переделывать весь код.

Сергей, что вы думаете на этот счёт? Просто интересно.
Enik вне форума  
 
Непрочитано 15.09.2016, 22:20
#73
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
Наверное, стоит сказать, что в программировании я часто выступаю как в роли заказчика, так и в роли исполнителя. И время от времени возникает одна и та же канитель.
Если я заказчик, то я думаю так: нужно быть полным аутистом, чтобы написать ТЗ на 200 листов, внести аванс и ждать, пока ленивый программер почешется.
Когда я исполнитель, возникает следующее: очень быстро приходит мысль, что нужно быть полным аутистом, чтобы под каждую хотелку заказчика переделывать весь код.

Сергей, что вы думаете на этот счёт? Просто интересно.
нужно достаточно подробное задание - что понимать, можешь это выполнить или нет, и в какие примерно сроки. И согласовывать поэтапно, чтобы потом не получить в конце - что это все не то. А с людьми сейчас вообще трудно работать)
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.09.2016, 22:22
#74
ВиталийР


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


Ну что бы мне написать толковое ТЗ и чтобы учесть и предусмотреть все моменты касаемо БД, надо самому хорошо соображать в этом, а если ты сам соображаешь в этом, то лучше сделать это самому, замкнутый круг получается)
ВиталийР вне форума  
 
Непрочитано 15.09.2016, 22:29
#75
Сергей812


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


есть ТЗ, есть реализация. ТС, например, пытается сразу к реализации перейти, в результате создал свою таблицу и не знает, что дальше с нею делать. А это он, скорее всего, еще не пробовал забивать туда тысячи строк данных - там еще нюансы появятся и т.д.
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.09.2016, 23:05
#76
ВиталийР


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


вот один мне хороший человек с другого форума ссылку скинул
http://www.planetaexcel.ru/techniques/1/38/
ВиталийР вне форума  
 
Непрочитано 15.09.2016, 23:26
#77
Сергей812


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


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
вот один мне хороший человек с другого форума ссылку скинул
http://www.planetaexcel.ru/techniques/1/38/
есть желание заниматься заданием диапазонов для тысяч строк?)
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.09.2016, 23:28
#78
ВиталийР


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


еееесть)) я счастлив)
ВиталийР вне форума  
 
Непрочитано 16.09.2016, 00:00
#79
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
нужно достаточно подробное задание - что понимать, можешь это выполнить или нет, и в какие примерно сроки. И согласовывать поэтапно, чтобы потом не получить в конце - что это все не то.
Спасибо. Скорее всего, так оно и есть, и должно соблюдаться неукоснительно. Жаль, всегда хочется как-то полюбовно... Видимо, это слабость моя такая.

Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Ну что бы мне написать толковое ТЗ и чтобы учесть и предусмотреть все моменты касаемо БД, надо самому хорошо соображать в этом, а если ты сам соображаешь в этом, то лучше сделать это самому, замкнутый круг получается)
Да, я об этом тоже долго думал. Пришёл к следующему выводу. Если ты распределяешь бюджет, то лучше нанять двух программистов. Чтобы один писал ТЗ другому. В итоге один отвечает за результат, а другой - за организацию процесса. Ну, как на стройке, стандартная схема: инвестор, заказчик, подрядчик
Цитата:
Сообщение от ВиталийР Посмотреть сообщение
вот один мне хороший человек с другого форума ссылку скинул

http://www.planetaexcel.ru/techniques/1/38/
ДВССЫЛ - это самый простой путь создания связанных списков из именованных диапазонов. Это да. Но я плохо представляю, для чего ещё он может быть полезен. Особенно для ТС. Мы же с того и начали, что отказались от ручного переписывания основного кода каждый раз после изменения БД. А с именованными диапазонами работать можно только руками...
Enik вне форума  
 
Непрочитано 16.09.2016, 00:50
#80
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
Если ты распределяешь бюджет, то лучше нанять двух программистов. Чтобы один писал ТЗ другому. В итоге один отвечает за результат, а другой - за организацию процесса.
И потом "слегка" удивиться, получив реализацию не с точки зрения потребностей пользователя, а с точки зрения программистов. Причем за оплату двух программистов.

Цитата:
Сообщение от Enik Посмотреть сообщение
ДВССЫЛ - это самый простой путь создания связанных списков из именованных диапазонов. Это да. Но я плохо представляю, для чего ещё он может быть полезен. Особенно для ТС. Мы же с того и начали, что отказались от ручного переписывания основного кода каждый раз после изменения БД. А с именованными диапазонами работать можно только руками...
Не будем мешать - думаю, через несколько дней ТС снова появиться, наигравшись с именованными диапазонами)
Сергей812 вне форума  
 
Непрочитано 16.09.2016, 06:54
#81
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


за это время можно выучить SQL
trir вне форума  
 
Непрочитано 16.09.2016, 08:58
#82
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от trir Посмотреть сообщение
за это время можно выучить SQL
За время этого обсуждения уже можно было бы научиться работать с БД в Access. Но еще лучше - не в самой среде MS-Access, а в среде программирования. Там все эти вопросы с "дполнительными фильтрами", "выпадающими списками", "диапазонами" решаются элементарно. Ну и "деревья", поиск, фильтрация, сортировка, надежный безошибочный ввод данных.

А если еще использовать SQL, то можно решить вообще всё. А еще ведь возникнут вопросы с вычислениями и выводом конечной продукции в виде отчета...

Да, Excel очень хорошая программа, позволяющая решать множество вычислительных задач без привлечения программистов. Хотя уже чуть более сложное приходится делать с использованием VBA. Но рассматривать её таблицы как базы данных - несерьезно.

Ну да, можно только с помощью топора, клиньев и мха и без единого гвоздя построить здание. Но лучше все-таки для каждой работы использовать соответствующие инструменты.
ShaggyDoc вне форума  
 
Непрочитано 16.09.2016, 09:41
#83
Сергей812


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


Плюс экселя - что он всегда под рукой, везде, в любой комплектации офиса. Задачу подобной сложности можно решить и в нем - но если решать, а не ждать решения. Даже такие примитивные вещи, как динамические таблицы, ТС не хочет использовать - вместо этого руками задает фильтры (при создании динтаблиц они создаются автоматом и можно время потратить на что-то другое). Он даже не понял сарказма по поводу именованных диапазонов для связанных списков для десятков тысяч строк данных - а вы предлагаете ему без разбега перейти на БД)
Сергей812 вне форума  
 
Непрочитано 18.09.2016, 00:35
#84
Enik

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


Вот, нашёл интересный материал в сети.
http://www.planetaexcel.ru/techniques/2/100/

Полезный макрос для получения выборки из БД по заданным условиям.
Enik вне форума  
 
Непрочитано 18.09.2016, 01:42
#85
Сергей812


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


можно и так, но быстрее будет скопировать весь диапазон Range в Variant, и далее уже с массивом в Variant работать)

----- добавлено через ~4 мин. -----
имею в виду в указанной выше по ссылке функции VLOOKUP2
Сергей812 вне форума  
 
Непрочитано 18.09.2016, 02:25
#86
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение

можно и так, но быстрее будет скопировать весь диапазон Range в Variant, и далее уже с массивом в Variant работать)
Суть уловил. Работа не с диапазоном в пространстве листа, а с переменной в виде двухмерного массива. Но, поскольку данным ЯП не владеют, то прошу вас реализовать это решение в коде. Будьте так любезны. Я и форумчане - все будем благодарны.

Это очень полезный макрос будет.
Enik вне форума  
 
Непрочитано 18.09.2016, 03:10
#87
Сергей812


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


Типа такого
Код:
[Выделить все]
Function VLOOKUP2(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _
                  N As Long, ResultColumnNum As Long) As Variant
    Dim I1 As Long
    Dim lArray As Variant: lArray = Table
    For I1 = LBound(lArray, 1) To UBound(lArray, 1)
      If (lArray(I1, SearchColumnNum) = SearchValue) Then N = N - 1
      If (N = 0) Then
        VLOOKUP2 = lArray(I1, ResultColumnNum)
        Erase lArray
        Exit Function
      End If
    Next I1
End Function
Сергей812 вне форума  
 
Непрочитано 18.09.2016, 05:50
#88
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Select ResultColumnNum from Table where SearchColumnNum = SearchValue
trir вне форума  
 
Непрочитано 18.09.2016, 14:16
#89
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Типа такого
Всё работает. Спасибо!

----- добавлено через ~4 мин. -----
А ещё у меня возникла мысль, что можно не формировать базу из значений в заранее заданных списках. Лучше наоборот. Можно из вручную заполненной базы из каждого столбца формировать списки уникальных значений. А потом уже эти списки в окно поиска вставлять. Чтобы самому составителю базы сразу были видны его же ошибки.

http://www.excel-vba.ru/chto-umeet-e...sya-znachenij/
Enik вне форума  
 
Непрочитано 19.09.2016, 02:17
#90
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
А ещё у меня возникла мысль, что можно не формировать базу из значений в заранее заданных списках. Лучше наоборот. Можно из вручную заполненной базы из каждого столбца формировать списки уникальных значений. А потом уже эти списки в окно поиска вставлять. Чтобы самому составителю базы сразу были видны его же ошибки.
На мой взгляд, надо разбивать на отдельные подзадачи-листы:
  1. Список регионов (городов);
  2. Список производителей и общей информации о них (без сортамента);
  3. Список дилеров для всех производителей (там же в списке ссылка на производителя) - скрытый лист;
  4. Лист для редактирования списка дилеров - в верхней части выпадающий список с уникальными именами производителей (ссылка на поз. №2), под ним таблица со списком дилеров для этого производителя (выборка макросом из списка поз.№3). После завершения редактирования в списке поз. 3 происходит обновление части таблицы, относящейся к данному производителю;
  5. Список сортамента для всех производителей. В нем же в дополнительных столбцах условия для выборки, над таблицей поля для ввода значений условий. Лист скрытый;
  6. Лист для редактирования списка сортамента - аналогично списку дилеров поз.№4;
  7. Ну и лист подбора, собственно. Там поля ввода/выбора параметров сортамента, региона и т.д.. Далее из таблицы поз.5 делается выборка производителей, потом по заданному региону - список дилеров. И это информация выводить в таблицу под полями ввода.

Естественно, это все не в "чистом" excel, а комбинируя взаимные связи между листами через формулы с небольшой помощью vba. Ну или смотрите в сторону БД)
Сергей812 вне форума  
 
Непрочитано 19.09.2016, 16:26
#91
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
На мой взгляд, надо разбивать на отдельные подзадачи-листы: ...
Ну да, как-то так оно и должно быть. Если по-людски.

Но я придумал ещё одно решение. Если стоите - сядьте, а то упадёте.

Оно эффективное и простое до безобразия. Не важно, как ТС вздумает составлять и дополнять БД - любую неопределённость и полёт мысли это решение преодолеет.

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

И всё! Как поиск в гугле.
Enik вне форума  
 
Непрочитано 19.09.2016, 16:48
#92
Сергей812


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


Цитата:
Сообщение от Enik Посмотреть сообщение
А нужно-то всего-навсего на отдельном листе объединить строки базы в куски текста, после чего осуществлять поиск по ключевым словам методом подстроки в строке. Ввёл несколько слов и на выходе получил строки базы, содержащие нужную информацию
Зачем? Вводишь в таблицах данных скрытые столбцы с формулой сравнения, которые все ссылаются на одну ячейку с искомым значением. Забил данные в ячейку и применил фильтры по столбцам сравнения.
И давно гуляет по сети вариант нечеткого поиска - но он тормозной из-за нескольких вложенных циклов.
Сергей812 вне форума  
 
Непрочитано 19.09.2016, 17:28
#93
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Зачем?
А так проще. К структуре БД - привязки никакой. Создавай столбцов сколько хочешь и пиши всё, что хочешь. Вплоть до базы из 1 столбца с содержанием типа "Руслан трубы дёшево", "Гаго лист шпунт экскаватор Липецк". Иными словами, сажаешь за базу любую блондинку и не боишься за сохранность своего детища. Я конкретно в этом решении вижу самый короткий путь к реализации задумки ТС.
Enik вне форума  
 
Непрочитано 19.09.2016, 18:45
#94
Сергей812


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


это плохо на самом деле - и так эксель не является БД сам по себе, хотя можно простые вещи там реализовать. Если еще и структуру как попало создавать без учета того, что эксель является электронной таблицей в первую очередь - то это без блондинки обойдется) Да и подобные задачи решаются бэкапами, транзакциями (чего у экселя никогда и не было) и т.д. А самый короткий путь ТС уже выбрал похоже, судя по молчанию - делает именованные области)
Сергей812 вне форума  
 
Автор темы   Непрочитано 08.10.2016, 18:36
#95
ВиталийР


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


Всём спасибо огромное, меня из форума убедил один специалист, что ексел не потянет миллион строк, что после 50 000 строки база в екселе накроется. Я заказал ему сделать базу за денежку
ВиталийР вне форума  
 
Непрочитано 08.10.2016, 18:49
#96
Сергей812


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


Цитата:
Сообщение от ВиталийР Посмотреть сообщение
Всём спасибо огромное, меня из форума убедил один специалист, что ексел не потянет миллион строк, что после 50 000 строки база в екселе накроется. Я заказал ему сделать базу за денежку
специалист слукавил - просто на листе больше миллиона строк не поддерживается. И спокойно догонял на тестах динтаблицы на 500'000 строк - ничего не падало)
Сергей812 вне форума  
 
Непрочитано 08.10.2016, 20:56
#97
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Цитата:
И спокойно догонял на тестах динтаблицы на 500'000 строк - ничего не падало)
сколько такой эксель кушал памяти?
Он может и может столько, если осторожно, но лучше не надо
trir вне форума  
 
Непрочитано 08.10.2016, 22:39
#98
Сергей812


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


Цитата:
Сообщение от trir Посмотреть сообщение
сколько такой эксель кушал памяти?
много, пару гб) Но это был тест - упадет Excel или нет.

В данном случае самая большая таблица была бы сортамента, таблицы производителей и их дилеров была бы меньше гораздо. ТС пошел по неправильному пути занесения все в одну таблицу - получил многократную избыточность информации (на порядки).
Сергей812 вне форума  
 
Непрочитано 09.10.2016, 01:14
#99
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Цитата:
много, пару гб)
значит Excel был х64. А люди обычно ставят х32 и не заморачиваются...
trir вне форума  
 
Непрочитано 09.10.2016, 01:37
#100
Сергей812


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


Цитата:
Сообщение от trir Посмотреть сообщение
значит Excel был х64. А люди обычно ставят х32 и не заморачиваются...
оптимизируйте хранение данных - и x32 хватит. Это был лишь тест) Ну раскрутил кто-то ТС на БД, теперь бизнес у владельца фирмы, где работает ТС - будет зависеть от разработчика БД в том числе. Excel прозрачнее)
Сергей812 вне форума  
 
Непрочитано 09.10.2016, 01:40
#101
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


наоборот
trir вне форума  
 
Непрочитано 09.10.2016, 01:51
#102
Сергей812


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


Ну если ТС озвучил задачу не выборку дилеров по определенным параметрам, а реализацию системы документооборота, как описано у Бушмана Андрея по ссылке - с первых же постов поддержал бы уход из excel в сторону более приспособленных для многопользовательской работы систем)
Сергей812 вне форума  
 
Непрочитано 11.10.2016, 22:23
#103
Enik

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
специалист слукавил - просто на листе больше миллиона строк не поддерживается. И спокойно догонял на тестах динтаблицы на 500'000 строк - ничего не падало)
Я ради прикола загрузил эксель выборкой из базы с применением формул массива и динамических диапазонов (самый тяжёлый для экселя вариант). Начал ощутимо подтормаживать при размере базы более 10000 строк. Это так, к слову.
Enik вне форума  
 
Непрочитано 11.10.2016, 23:51
#104
Сергей812


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


500000 строк, за образец взята таблица ТС (частично). В памяти выжирает 90мб всего.

А по факту - количество номенклатуры выпускаемых металлоизделий не может быть
Цитата:
Сообщение от ВиталийР Посмотреть сообщение
каждый производитель имеет более 2000 наименований
умноженное на количество производителей - иначе конструкторы свихнуться от выбора. Соответственно будет какой то набор хорошо в 50...100 тыс строк от силы. Последние столбцы в таблице должны быть по количеству производителей. В ячейках столбцов стоят: 0 - данную позицию данный производитель не изготавливает, 1 - изготавливает. И далее в этой таблице обыкновенными формулами по введенным в поля поиска (или выбранных из списка) получаем - какие производители производит искомую позицию. Далее есть таблица дилеров, где по выбранному региону и по первой таблице получаем теми же формулами в скрытом столбце значения типа 0/1. Отфильтровав таблицу по этому столбцу-получаем список дилеров, кто в данном регионе способен поставить искомую позицию. А макросами можно ввод обкрутить, как показывал ранее и прочие сервисные вещи.

Последний раз редактировалось Сергей812, 13.03.2025 в 14:33.
Сергей812 вне форума  
 
Автор темы   Непрочитано 09.12.2016, 23:42
#105
ВиталийР


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


Добрый вечер, господа! Подскажите сколько будет ориентировочно стоить создать базу данных (справочник) в MS Sql Server? С функцией поиска по базе данных!
ВиталийР вне форума  
 
Непрочитано 10.12.2016, 00:17
#106
Сергей812


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


Каждый раз из вас приходиться клещами информацию вытягивать)
1. Оболочку к БД или занесение данных в БД?
2. Если первое - где ТЗ?
3. Почему не в разделе "Поиск исполнителей"?
Сергей812 вне форума  
 
Автор темы   Непрочитано 10.12.2016, 00:20
#107
ВиталийР


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


Оболочку!
Тз нет
Ориентировочная какая стоимость такого удовольствия?
ВиталийР вне форума  
 
Непрочитано 10.12.2016, 00:24
#108
Сергей812


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


Лучше все таки написать в раздел исполнителей. Составить хоть какое то ТЗ и предложить присылать предложения по стоимости и срокам выполнения в личку. А куда делся специалист с форума, который еще два месяца назад обещал написать?
Сергей812 вне форума  
 
Автор темы   Непрочитано 10.12.2016, 00:38
#109
ВиталийР


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


..

Последний раз редактировалось ВиталийР, 10.12.2016 в 14:05.
ВиталийР вне форума  
Ответ
Вернуться   Форум 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