Реклама i
|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как в Excel создать дополнительные фильтры или выпадающие списки в столбце и чтобы данные определенной ячейки были связаны с соседними ячейками по горизонтали?
Регистрация: 09.09.2016
Сообщений: 31
|
||
Просмотров: 34204
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
...я бы использовал именно базы данных, а не табличный процессор.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
С моей точки зрения Excel для таких задач подходит достаточно слабо. Access, скорее всего, окажется удобнее (по крайней мере не надо будет многократно вбивать одну и ту же информацию).
А так - попробуй сводную таблицу. Но я не уверен, что это полностью подойдет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,108
|
|
|||
![]() |
|
||||
конструктор Регистрация: 14.08.2014
Псков
Сообщений: 7,340
|
опять непонятное описание. так примерно?
|
|||
![]() |
|
||||
ПенсионЭр Регистрация: 26.06.2009
Сообщений: 361
|
ВиталийР, тебе прямой путь на "Планету Excel".
Там есть отличный форум, там помогут - сто процентов. http://www.planetaexcel.ru/forum/ Offtop: Кулик Алексей aka kpblc, похоже, на форуме DWG.RU появилась необходимость создать отдельную ветку по Excel: вопросов по чистому Excel, без связи с AutoCAD и др. приложениями, - всё больше и больше ![]() |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
В экселе можно извратиться, но без желания
это будет очень громоздкая штука с полу вменяемым интерфейсом. С макросами можно сделать то же контекстное меню свое, где будет перейти к списку дилеров для конкретного производителя. Или сделать жёсткими гиперссылками из одной таблицы на 1-м листе (список производителей) на списки дилеров. А есть еще группировка данных, например - чтобы на одном листе ----- добавлено через ~3 мин. ----- смысла нет, имхо. К выпрашиванию лиспиков присоединятся выпрашиватели макросов и формул) По экселю материалов в инете - это просто надо не хотеть найти решение или подсказку |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Могу ошибаться, но вроде бы эта фигня называется "связанные списки". Это чтобы формировать каждый последующий список на основании предыдущего(щих). На завершающем этапе выборка из БД по нескольким критериям (выбранным из списков) осуществляется через формулы массива.
Делал я такое. Реализуемо с помощью базового функционала excel. И даже выглядит красиво в конечном итоге. Но простым и изящным такое решение уж точно не назовешь... ----- добавлено через ~3 мин. ----- Но есть одно ограничение. Для динамически формируемых массивов и БД это не подходит. Следовательно, и вам не подойдёт. |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Так ведь проблема не в этом. Хоть миллиард. Проблема в том, что там задействованы именованные массивы. А они динамическими не бывают. Иными словами, внёс изменения в БД - будь любезен, переназначь массивы... Это просто убивает.
Самое лучшее, что можно вымучать из экселя таким способом - это калькулятор металлопроката (лежит где-то в глубинах download). Всё ж таки ГОСТы не каждый день меняются... |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Связанные списки в Excel - цените трудоемкость с учетом своих объемов)
----- добавлено через ~6 мин. ----- можно и подобное - только это надо разбивать на отдельные таблицы, продумывать связи между ними - а топик-стартер пошел по пути прямого наращивания количества строк и столбцов. А ведь еще не каждый дилер поставляет весь сортамент производителя - т.е на каждую строчку сортамента может быть какой то свой набор дилеров. И все это надо еще умудриться ввести - а ТС рассматривает только проблему вывода/поиска. |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
В общем, пытаться написать что-то дельное в экселе - это как ковыряться ножом в зубах. ----- добавлено через ~2 мин. ----- Цитата:
|
|||
![]() |
|
||||
Регистрация: 09.09.2016
Сообщений: 31
|
Зарегистрировался на куче форумах разместил этот вопрос, не поверите, только один ответ пришел! Тут самый живой форум с действительно специалистами. Ребят я просто не общался на форумах раньше, может мне кто поможет такую таблицу в екселе составить и скажите сколько ваша работа будет стоить!? Очень нужно решить два вопроса с дилерами (выпадающем списке) и вопрос который я ранее опубликовывал тема про интервалы чисел в ячейке!? Не знаю корректно ли о деньгах писать в подобных форумах...
|
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,108
|
о деньгах сюда
только это тупиковый путь |
|||
![]() |
|
||||
конструктор Регистрация: 14.08.2014
Псков
Сообщений: 7,340
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Вообще то динамические таблицы в экселе и появились как некий суррогат БД для тех, кто по каким то причинам не может в том же access сделать)
----- добавлено через ~2 мин. ----- если в том виде-как у вас во вложении.. ну не до конца явно) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Цитата:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Добавил пример связанных списков с динамически изменяемыми диапазонами на VBA. Можно добавлять значения в динамическую таблицу - главное, потом ее отсортировать в порядке возрастания по всем трем столбцам сразу. И при получении фокуса выпадающие списки имеют обновленные значения, причем автоматически отбираются уникальные значения. А без VBA построить хоть какую то БД на базе Excel выльется в:
Последний раз редактировалось Сергей812, 13.03.2025 в 14:33. |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
![]() ----- добавлено через ~10 мин. ----- Offtop: Добавлю ещё, что требования заказчика к софту обычно выглядят так: - Чтобы я такая на кнопочку "клац", а оно мне сразу "у-ух", а я вся такая "вау-у-у!" ![]() |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Ну во первых сортировку таблицы можно тоже программно сделать по какому то условию (событию)-пару десятков строк кода, насколько помню. А во вторых - можно и без сортировки, будет кода больше просто. И в списке будет неотсортированный по порядку список уникальных значений. Хотя и это решается. Просто если есть желание все писать в виде кода, то зачем вообще нужен Excel?)
|
|||
![]() |
|
||||
Регистрация: 09.09.2016
Сообщений: 31
|
Я мазохист, я хочу так, Сергей)
----- добавлено через ~2 мин. ----- Может меня Вы не понимаете!? Порядок использования БД по пунктам: 1. Выбираю наименование 2. Марку стали 3. Размеры+доп. тех.параметры (производители производят например лист или уголок в огромном количестве размеров, но в тоже время не все размеры которые используются в строительстве, чтобы мне не создавать 200 строк, я хочу все уместить в одной указав интервалом от и до) Мне выпадает список производителей, которые производят продукцию которая мне нужна, далее я ищу дилеров. 4. Выбираю регион (все круто у меня в таблице, но мне не нравиться высота строки одного наименования из-за большого списка дилеров, который я должен вносить в каждую строку этот список, из-за этого я хочу скрыть этот список и установить дополнительный фильтр в одну ячейку региона дилера) ----- добавлено через ~6 мин. ----- Основной вопрос как создать дополнительные фильтры в столбце "регион" (дилера) при отсутствия такой возможности в рамках эксель, то придумать альтернативный вариант |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
1. Начнем с того, сколько типов наименований, марок сталей и т.д.? Как часто они меняются? Почему не сделать в виде отдельных таблиц, в основной БД выпадающие списки на базе проверок (даже без VBA)?
2. Работа с диапазоном на основе скрытых столбцов - уже писал в другой вашей ветке. 3. По поводу диапазонов: Цитата:
p.s. Мазохизм будет, когда забьете туда сортамент - и окажется, что в этой таблице кроме вас никто и не сможет работать) |
|||
![]() |
|
||||
Регистрация: 09.09.2016
Сообщений: 31
|
Очень много наименований и марок стали. Не совсем понял второй вопрос, в смысле - меняются? Если завод производит трубу бесшовную больших диаметров, то он не будет через год катать электросварную маленьких диаметров... По множеству причин не удобно будет создавать несколько отдельных таблиц.
С сортаментом уже всё продумано, с этим пока вопросов нет. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
у вас уже есть фильтр по регионам, а не хотите высокую ячейку производителя - дублируйте имя производителя для каждого дилера. Просто не понимаю, что хотите...
|
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
Цитата:
1. Формирование динамического списка 1 путём выборки из двухмерного массива 1 по заданным условиям. 2. Формирование динамического списка 2 путём выборки из двухмерного массива 1 по условию, заданному в динамическом списке 1. 3. Поиск значения в двухмерном массиве 1 по условию, заданному в динамическом списке 2. ----- добавлено через ~5 мин. ----- В расширенном варианте: -//-//- 4. При формировании динамического списка 1 произвести анализ содержимого двухмерного массива 1 методом поиска подстроки в строке и методом поиска принадлежности значения интервалу. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
это понятно. Меня вызывает сильнее сомнение в работоспособности варианта ТС при забитых строках данных в количестве многих тысяч. Которые еще забить надо, что при таскании таблицы туда-сюда из-за ее ширины займет тоже немало времени.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Такая таблица может иметь место - как БД на скрытом листе, с которой пользователь напрямую не работает. А на отдельных листах сделаны частичные таблицы для ввода/модификации/выбора, ссылающиеся формулами/макросами на эту главную таблицу и обратно.
|
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
----- добавлено через ~8 мин. ----- Из нестандартных решений приходит в голову разделить эксель на 2 книги: в одной чисто БД, в другой - интерфейс и программный код. Чтобы не захламлять саму изначальную БД. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
вообще то надстройки есть). Но как раз есть смысл, что если подобное делать на Excel - то использовать по возможности функционал листов экселя. И дополнять их кодом vba - заменяя ручные операции пользователя, недостающий функционал. А не пытаться переписать на достаточно медленном VBA гораздо более быстрые встроенные операции на листах)
|
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
И тогда уже программными средствами переписывать данные в нужном виде из исходной БД в контейнер в файл с программным кодом. А потом уже из контейнера получать нужную информацию простейшими методами.
----- добавлено через ~4 мин. ----- Цитата:
----- добавлено через ~7 мин. ----- Я часто пишу различные расчётные программы в экселе. И каждый раз всё упирается в то, что листы захламляются полностью. Этого нужно избежать. ----- добавлено через ~21 мин. ----- В общем, завтра поколдую, выложу. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
В каком смысле - захламляются?
А применительно к моему посту #39 немного подкорректировал свой пример связанных списков - теперь и "БД", и ввод, и авто сортировка после добавления. На текущем этапе я так вижу реализацию интерфейса в Excel. Проверку на дубликаты при вводе не делал - это чисто техническая проблема, лень код писать) Последний раз редактировалось Сергей812, 13.03.2025 в 14:33. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,108
|
Цитата:
|
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Когда начинаешь добавлять в эксель проверку значений и условий, защиту от дурака и условное форматирование (в попытках сделать программу дружелюбной для пользователя), то вскоре и сам запутываешься. Принцип KISS никто не отменял. Приходится ограничивать свои хотелки и писать либо калькуляции, либо простенькие расчёты.
У меня давно уже пылятся на винте различные вкусности. Инженерные расчёты статически неопределимые систем с построением эпюр, интегралы, решения систем уравнений матричным способом... Всё в голом экселе. Но толку от этого никакого, потому что никто в этом не разберётся, кроме меня самого. В экселе я только раз выгодно загнал инженерный расчёт по гидравлике. И то только потому, что догадался сделать к нему интерфейс. Надо бы всё в Си Билдер перегнать... Но лень ![]() Цитата:
![]() |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Так опять же, ничто не мешает защитить лист, кроме ячеек ввода - а они скрыты в обычном режиме (скрыты строки с ними). Защищаться от "дурака" можно постфактум по последствиям, а можно превентивно - просто не давая ему возможности совершить деструктивные действия. От инициативного "дурака" это уже не спасет, конечно)
|
|||
![]() |
|
||||
Регистрация: 09.09.2016
Сообщений: 31
|
Приветствую тебя, Enik!
Спасибо тебе большое, но... Я посмотрел БД которую ты выложил, такой вариант не подходит по следующим причинам: 1. В твоем варианте БД мне надо выбирать производителя в первую очередь. Не часто в спецификациях или заявках указывают материал и его производителя, в моем варианте основная суть найти производителя и ближайший регион к строительному объекту, где находиться дилер. ЕСли я в таком варианте не выбираю производителя в поиске, не поиске ничего не выдаст. 2. В твоем варианте БД мне надо выбирать регион в БД будет более тысячи городов, в твоем поиске, если я выбрал материал и производителя, мне будет выпадать в фильтре весь список городов из таблице, если у искомого материала, далее производителя, всего два дилера, то мне придется открыть 3000 городов чтобы определить в каких регионах у производителя есть дилеры. 3. То же самое и с колонкой "продукция", я не всегда могу знать точные параметры наименования и мне нужно выбирать из фильтра, или допустим подобрать аналогичную продукцию, мне для согласования нужно понимать какой шаг отклонения допустим и т.д. 4. Мне нужно искать продукцию по фильтрам а не в поиске или как правильно это называется на языке программирования. В твоем варианте БД, ты частично решаешь проблемы которые "озвучены" в теме, но не учитываешь мой вариант БД, которую я создавал в определенном приоритетном порядке взаимодействия для выполнения конкретных задач, которые я тут указал. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Offtop: Да 1С поднять и запрограммировать - чего уж мелочиться то) |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
да все это и в экселе можно сделать - только нет желания вникать в хотелки ТС. Выдаст подробный алгоритм - может что-то и сдвинется. По условию:
подразумевается еще БД объектов, где будет указаны параметры объектов, включая местоположение. И БД расстояний между регионами (почему регион, кстати-если там города) и возможность доставки каким видом транспорта. Т.е. элементы логистики |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
ну полноценную ГИС на базе Excel создавать..) А просто таблицы-матрицы вполне можно. Но ТС, судя по цифрам, хочет в одну таблицу запихать десятки тысяч строк данных и дальше непонятно чего хочет. По сути из его варианта БД уже все варианты предложены: разбить диапазоны на граничные условия, далее в полях ввода вводить (выбирать из падающего списка), фильтровать по региону, по типу и т.д. В результате получит список производителей с указанным сортаментом в указанном регионе. Что он еще хочет?
|
|||
![]() |
|
||||
Регистрация: 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 мин. ----- Всё участникам данной темы выражаю своё уважение и восхищение вашему терпению и желанию помочь!!! Желаю хорошего дня! |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
с форума по указанной ссылке от девушки
Цитата:
так дублируйте параметры производителя в каждую строчку с дилером, и потом работайте с таблицей через фильтры. Если все хотите в одной таблице. Хотя напрашивается из-за объемов и удобства поддержки в дальнейшем разбитие на таблицы. |
|||
![]() |
|
||||
Регистрация: 09.09.2016
Сообщений: 31
|
Так в том то и дело, что если прописывать одно и тоже наименование прописывать в том количестве строк, сколько производитель имеет дилеров+дилеры еще могут быть сетевой компании, которая представлена в каждом регионе страны грубо говоря, то мне допустим при выборе листа с маркой стали 09Г2С с толщиной листа 4, будет выпадать список из 300 строк только одного производителя, прибавим еще 20 производителей того же материалы, у меня уже будет 6000 строк одного и того же наименования. А также касаемо моего второго вопроса, по интервалам чисел в ячейке, допустим лист с маркой стали 09Г2С производитель производить с толщиной листа 2, 3, 4, и до 40, (а если взять например трубу еще и диаметры нужно учесть), также ширина, длина и так далее, это еще 6000 позиций того же наименования только с различными размерами. Вот эти два момента я хочу упростить/оптимизировать.
----- добавлено через ~4 мин. ----- касаемо списка дилеров, я хочу скрыть строки дилеров, оставив при этом одну установив на ней фильтр для выбора из списка нужного региона, но эксель мне не дает создать дополнительные фильтры в виду того что они уже установлены в заголовках столбцов. по интервалам мне нужно каким то образом где-то прописать формулы или еще что-нибудь чтобы фильтр распознавал искомое число например 8 в интервале 2 - 40 |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
1. Надо разделять таблицу производителей и таблицу дилеров. В БД есть тоже главная таблица, вторичные..
2. "по интервалам мне нужно каким то образом где-то прописать формулы или еще что-нибудь чтобы фильтр распознавал искомое число например 8 в интервале 2 - 40" писал же ранее - три столбца, в двух формулами вытаскиваете граничные условия, в третьих формула проверки - попадает ли число, введенное в ячейку над таблицей в диапазон. А можно даже без первых двух столбцов - все в одну формулу написать. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
А теперь скажи "здрасьте" реляционным базам данных и SQL.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Всё это очень просто решается в любой настоящей среде программирования (VC, Delphi, Builder и т.п.), причем можно даже обойтись и без собственного кода, или с минимумом его. Но для тех, кто этим не хочет заниматься, специально придумана Access. И она нисколько не сложнее Excel. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,108
|
в Excel можно и ассемблер реализовать
![]() |
|||
![]() |
|
|||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
Цитата:
Цитата:
Без проблем В экселе - технически не решаемо. Опять же, я не считаю, что это критично. Забудь про фильтры. Их функционал в экселе сильно ограничен. Цитата:
Опять же, делать тебе вот так сразу готовую базу, как ты хочешь - это невозможно. Сейчас я тебе продемонстрировал, что это в принципе решаемо. Ты посмотрел, что-то понял, что-то - нет. Какие-то моменты уточнил. И дальше будешь уточнять. А я буду искать решение. Пойми, процесс написания программы - он всегда динамичный. Все работают в тесной связке. И по мере приближения к результату меняется/уточняется ТЗ. Насчёт интервалов - я тебе продемонстрировал решение в моей БД. На предмет вхождения в интервал, и на соответствие значению из списка, и на точное соответствие. Посмотри повнимательнее. И ещё. У тебя не получится всё сделать в одной таблице. Нужно разбивать на отдельные таблицы (как у меня в примере) со строгими стандартами их заполнения. Например, путём выбора из заранее заданных списков (см. пример). |
||||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Ну написал же уже в примере всё это. С интервалами - столбец "сорт". Лист " БД", там справа от самой БД условие прописано.
|
|||
![]() |
|
||||
Регистрация: 09.09.2016
Сообщений: 31
|
Походу надо просто записываться на курсы Excel и Access и не делать голову людям) Или найти специалиста который за денежку такую базу разработает и объяснит, как ей пользоваться корректировать/дополнять и так далее. Я думал, что мои вопросы решаются более простым и доступным способом для пользователя Excel с базовыми знаниями.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Ну если не использовать функционал экселя выше 2003 версии (как видно из примера ТС) - то да, извращаться можно будет долго и разнообразно)
Цитата:
Цитата:
----- добавлено через ~16 мин. ----- Цитата:
http://www.planetaexcel.ru http://office-guru.ru/excel/samouchi...l-vba-453.html http://www.excel-vba.ru/ если сами не разберетесь, тогда уж тратьте время и деньги на курсы, имхо |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
Цитата:
В простейшем случае, кмк, нужно либо одно, либо другое. Последний раз редактировалось Кулик Алексей aka kpblc, 16.09.2016 в 00:26. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
насколько знаю, нельзя через формулы. Просто VBA рассматриваю как неотъемлемую часть Excel, а там можно.
так и должно быть. Это в задании несколько строк изменить, а в книге эксель может повлечь пересмотр половины ее концепции. |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Наверное, стоит сказать, что в программировании я часто выступаю как в роли заказчика, так и в роли исполнителя. И время от времени возникает одна и та же канитель.
Если я заказчик, то я думаю так: нужно быть полным аутистом, чтобы написать ТЗ на 200 листов, внести аванс и ждать, пока ленивый программер почешется. Когда я исполнитель, возникает следующее: очень быстро приходит мысль, что нужно быть полным аутистом, чтобы под каждую хотелку заказчика переделывать весь код. Сергей, что вы думаете на этот счёт? Просто интересно. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
есть ТЗ, есть реализация. ТС, например, пытается сразу к реализации перейти, в результате создал свою таблицу и не знает, что дальше с нею делать. А это он, скорее всего, еще не пробовал забивать туда тысячи строк данных - там еще нюансы появятся и т.д.
|
|||
![]() |
|
||||
Регистрация: 09.09.2016
Сообщений: 31
|
вот один мне хороший человек с другого форума ссылку скинул
http://www.planetaexcel.ru/techniques/1/38/ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
Цитата:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
За время этого обсуждения уже можно было бы научиться работать с БД в Access. Но еще лучше - не в самой среде MS-Access, а в среде программирования. Там все эти вопросы с "дполнительными фильтрами", "выпадающими списками", "диапазонами" решаются элементарно. Ну и "деревья", поиск, фильтрация, сортировка, надежный безошибочный ввод данных.
А если еще использовать SQL, то можно решить вообще всё. А еще ведь возникнут вопросы с вычислениями и выводом конечной продукции в виде отчета... Да, Excel очень хорошая программа, позволяющая решать множество вычислительных задач без привлечения программистов. Хотя уже чуть более сложное приходится делать с использованием VBA. Но рассматривать её таблицы как базы данных - несерьезно. Ну да, можно только с помощью топора, клиньев и мха и без единого гвоздя построить здание. Но лучше все-таки для каждой работы использовать соответствующие инструменты. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Плюс экселя - что он всегда под рукой, везде, в любой комплектации офиса. Задачу подобной сложности можно решить и в нем - но если решать, а не ждать решения. Даже такие примитивные вещи, как динамические таблицы, ТС не хочет использовать - вместо этого руками задает фильтры (при создании динтаблиц они создаются автоматом и можно время потратить на что-то другое). Он даже не понял сарказма по поводу именованных диапазонов для связанных списков для десятков тысяч строк данных - а вы предлагаете ему без разбега перейти на БД)
|
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Вот, нашёл интересный материал в сети.
http://www.planetaexcel.ru/techniques/2/100/ Полезный макрос для получения выборки из БД по заданным условиям. |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Цитата:
Это очень полезный макрос будет. |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Всё работает. Спасибо!
----- добавлено через ~4 мин. ----- А ещё у меня возникла мысль, что можно не формировать базу из значений в заранее заданных списках. Лучше наоборот. Можно из вручную заполненной базы из каждого столбца формировать списки уникальных значений. А потом уже эти списки в окно поиска вставлять. Чтобы самому составителю базы сразу были видны его же ошибки. http://www.excel-vba.ru/chto-umeet-e...sya-znachenij/ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Естественно, это все не в "чистом" excel, а комбинируя взаимные связи между листами через формулы с небольшой помощью vba. Ну или смотрите в сторону БД) |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Ну да, как-то так оно и должно быть. Если по-людски.
Но я придумал ещё одно решение. Если стоите - сядьте, а то упадёте. Оно эффективное и простое до безобразия. Не важно, как ТС вздумает составлять и дополнять БД - любую неопределённость и полёт мысли это решение преодолеет. А нужно-то всего-навсего на отдельном листе объединить строки базы в куски текста, после чего осуществлять поиск по ключевым словам методом подстроки в строке. Ввёл несколько слов и на выходе получил строки базы, содержащие нужную информацию. И всё! Как поиск в гугле. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
И давно гуляет по сети вариант нечеткого поиска - но он тормозной из-за нескольких вложенных циклов. |
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
А так проще. К структуре БД - привязки никакой. Создавай столбцов сколько хочешь и пиши всё, что хочешь. Вплоть до базы из 1 столбца с содержанием типа "Руслан трубы дёшево", "Гаго лист шпунт экскаватор Липецк". Иными словами, сажаешь за базу любую блондинку и не боишься за сохранность своего детища. Я конкретно в этом решении вижу самый короткий путь к реализации задумки ТС.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
это плохо на самом деле - и так эксель не является БД сам по себе, хотя можно простые вещи там реализовать. Если еще и структуру как попало создавать без учета того, что эксель является электронной таблицей в первую очередь - то это без блондинки обойдется) Да и подобные задачи решаются бэкапами, транзакциями (чего у экселя никогда и не было) и т.д. А самый короткий путь ТС уже выбрал похоже, судя по молчанию - делает именованные области)
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
специалист слукавил - просто на листе больше миллиона строк не поддерживается. И спокойно догонял на тестах динтаблицы на 500'000 строк - ничего не падало)
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
много, пару гб) Но это был тест - упадет Excel или нет.
В данном случае самая большая таблица была бы сортамента, таблицы производителей и их дилеров была бы меньше гораздо. ТС пошел по неправильному пути занесения все в одну таблицу - получил многократную избыточность информации (на порядки). |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
оптимизируйте хранение данных - и x32 хватит. Это был лишь тест) Ну раскрутил кто-то ТС на БД, теперь бизнес у владельца фирмы, где работает ТС - будет зависеть от разработчика БД в том числе. Excel прозрачнее)
|
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,108
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Ну если ТС озвучил задачу не выборку дилеров по определенным параметрам, а реализацию системы документооборота, как описано у Бушмана Андрея по ссылке - с первых же постов поддержал бы уход из excel в сторону более приспособленных для многопользовательской работы систем)
|
|||
![]() |
|
||||
ГИП Регистрация: 07.06.2015
Сообщений: 1,254
|
Я ради прикола загрузил эксель выборкой из базы с применением формул массива и динамических диапазонов (самый тяжёлый для экселя вариант). Начал ощутимо подтормаживать при размере базы более 10000 строк. Это так, к слову.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
500000 строк, за образец взята таблица ТС (частично). В памяти выжирает 90мб всего.
А по факту - количество номенклатуры выпускаемых металлоизделий не может быть умноженное на количество производителей - иначе конструкторы свихнуться от выбора ![]() Последний раз редактировалось Сергей812, 13.03.2025 в 14:33. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как извлечь данные из файла 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 |