Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2011, 13:55   #1
MF-er
 
Регистрация: 17.07.2011
Сообщений: 6
Печаль Извлечение нескольких строк из базы данных в отдельную ячейку. Проблема.

Здравствуйте знатоки! Столкнулся с одной проблемой, которую самостоятельно разрешить так и не смог. Сколько не смотрел на форумах, если и находил варианты разрешения моей проблемы - реализовать на своей таблице я их так и не смог. Суть проблемы. Есть две постоянно обновляемые таблицы: одна с задачами, другая с отчетами о работе. Нужно сделать так, чтобы в графе "Примечания" листа "Задачи" отражался ход выполнения задачи. Для этого на листе "Отчет о работе" должны выбираться все строки с номером основной задачи. Вторая проблема (она дополнительная, тоесть не суть какая важная) - как сделать так, чтобы на листе "Задачи" автоматически проставлялась отметка об исполнении основной задачи при проставлении даты на листе "Отчет о работе". Если говорить на примере, то в примечании задачи 1 листа "Задачи" нужно чтобы отражались примечания, объединяющие несколько строк из таблицы "Отчеты о работе" в формате: "02.01.2011 Иванов Написал письмо, 15.01.2011 Иванов Отправил проект, 12.01.2011 Петров Созвонился по поводу проекта ......" Возможно ли такое реализовать. Если да, то может быть сможете помочь?
Вложения
Тип файла: zip ZADACHI.zip (9.4 Кб, 15 просмотров)
MF-er вне форума Ответить с цитированием
Старый 17.07.2011, 14:57   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

можно, а смысл???
лично я его не улавливаю

поставьте фильтр на лист "отчет"
потом:
1.выбираете задачу (4 щелчка мыши)
2.если события не посортированы по дате - еще два щелчка и посортированы
итого 4-6 щелчков мышом и у Вас перед глазами хронология событий по выбранной задаче.
а не как на листе "задачи" - видно либо название задачи, либо примечания
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.07.2011, 15:30   #3
MF-er
 
Регистрация: 17.07.2011
Сообщений: 6
По умолчанию

Идея в том, чтобы руководству можно было распечатать один лист "Задачи" а они увидели, что делается в целом по всем задачам. При этом не нужно было бы дублировать данные в двух листах (я же писал, что это динамическая таблица, тоесть постоянно в нее что-то будет добавляться, поэтому нужна автоматизация).
MF-er вне форума Ответить с цитированием
Старый 17.07.2011, 18:30   #4
rexec
Пользователь
 
Аватар для rexec
 
Регистрация: 27.12.2007
Сообщений: 73
По умолчанию

Цитата:
Сообщение от MF-er Посмотреть сообщение
...Столкнулся с одной проблемой, которую самостоятельно разрешить так и не смог...
1. по отметке исполнения - сделал формулу в столбец с примечаниями листа "Основные задачи";
2. по формированию отчета - сделал с помощью сводной таблицы - лист "Результат". Чтобы сводная таблица формировалась корректно, надо не забывать копировать формулы в дополнительных столбцах на листе "Отчет".
Вложения
Тип файла: zip ZADACHI1.zip (15.1 Кб, 13 просмотров)
rexec вне форума Ответить с цитированием
Старый 17.07.2011, 18:36   #5
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Ряд задач стоящих пере домной схожи. Отмечу что нет ни какой необходимости переносить данные на лист "Задачи", сразу после ввода этих данных (я бы сказал как раз наоборот - это контр продуктивно, так как в рабочем порядке эти данные могут изменяться, а в отчете нужны окончательные данные). Более чем достаточно обновление (вплоть до полного пересоздания) листа "Задачи" по запросу. Это:
* С одной стороны значительно облегчает программирование;
* Позволяет серьёзно усложнить условия формирования строк, дополнительно фильтровать данные по самым не мысленным условиям, формировать любое кол-во отчетов разной визуализации и разной полноты и т.п. и т.д.
* Защита "от дурака". Сложно убить формулу, если ее нет. А если по ошибки изменить значение, то это легко исправить пересоздав отчет.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 17.07.2011, 23:37   #6
MF-er
 
Регистрация: 17.07.2011
Сообщений: 6
По умолчанию

В том то вся сложность и состоит, что я предполагал сделать динамическую таблицу. Первый лист "Задачи" мог быть исправлен только руководителем. Подчиненные могли бы просто составлять отчеты и не заботиться тем, как заполняются примечания на листе "Задачи". Поэтому и не хотелось бы идти по пути составления отдельных таблиц - как объяснить руководителю что он так должен делать, чтобы что то увидеть? Я предполагал, что есть какая-то функция, которая сможет выбирать несколько записей. Видимо такой функции нет, поэтому уже родилась идея сделать так: справа от примечаний создать функцию, которая сможет выбрать первую запись из нескольких, еще правее вторую из нескольких записей, не равную первой, третья - третью и так далее. Потом в примечаниях можно было бы просто вставить текстовое объединение всех получившихся справа результатов. Выгода в том, что формула была бы забита для всех записей универсальная, и уже при появлении какого-то результата - все само могло бы появляться в "примечаниях". Одна сложность - как сжделать так чтобы после функции например БИЗВЛЕЧЬ выбирался уже второй результат, которые не похож на первый?
MF-er вне форума Ответить с цитированием
Старый 18.07.2011, 22:45   #7
MF-er
 
Регистрация: 17.07.2011
Сообщений: 6
По умолчанию

Неужели такая простая задача в действительности не реализуемая!? Уважаемые знатоки - помогите!!!!
MF-er вне форума Ответить с цитированием
Старый 18.07.2011, 23:06   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

C допстолбцами и UDF.
Хотя на первом листе допстолбец можно не делать, если так написать:
Код:
VLOOKUPCOUPLE(Отчет!$B$6:$H$57;7;C6&"|"&D6;1;", ")
Ну а если UDF написать под задачу (или эту подправить именно для такой, на два столбца ориентированной задачи), то можно и на втором не делать.
Вложения
Тип файла: rar ZADACHI.rar (16.9 Кб, 10 просмотров)
Тип файла: rar ZADACHI_Spec.rar (16.9 Кб, 11 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 18.07.2011 в 23:15.
Hugo121 вне форума Ответить с цитированием
Старый 19.07.2011, 07:51   #9
rexec
Пользователь
 
Аватар для rexec
 
Регистрация: 27.12.2007
Сообщений: 73
По умолчанию

Цитата:
Сообщение от MF-er Посмотреть сообщение
...справа от примечаний создать функцию, которая сможет выбрать первую запись из нескольких, еще правее вторую из нескольких записей, не равную первой, третья - третью и так далее.
Ну примерно также реализовано, просто формулы стоят справа от задач, эти формулы можно скрыть.
По своему опыту знаю, что большое нагромождение в таблицах раздражает руководителей. Потому на листе с задачами в примечаниях отражается статус. А если нужна детализация, то с помощью гиперссылки легко можно увидеть все проделанные мероприятия и также гиперссылкой вернуться на основной лист.
Есть, правда, одно "но". При заполнении данных необходимо, чтобы автоматически обновлялись данные в сводной таблице, например, при активизации листа со сводной таблицей, тут уже нужны средства VBA, а я в них не силен Единственно, что смог сделать в этом направлении, так это создал макрос макрорекордером, который обновляет сводную таблицу при нажатии клавиш "CTRL+m" при этом клава должна быть в английской раскладке.
Вложения
Тип файла: rar ZADACHI1.rar (56.9 Кб, 14 просмотров)
rexec вне форума Ответить с цитированием
Старый 20.07.2011, 00:33   #10
MF-er
 
Регистрация: 17.07.2011
Сообщений: 6
По умолчанию

Спасибо огромное, только вот прошу помощи разобраться в том, что значат значения в формуле ... я вникал вникал, но так и не понял
=ГИПЕРССЫЛКА(СЦЕПИТЬ("#Результат!"; АДРЕС(ПОИСКПОЗ(B6;Результат!$B$12:$ B$65536;0)+11;2;;1);ЕСЛИ(СУММПРОИ ЗВ((C6=номер_зад)*дата_исп)>0;"Выпо лнена";"Не выполнена"))
Гиперссылка понятна, суть остального мне вообще не ясна ..... поражает то, что результат мне даже очень нравится, но как работает - совершенно не понятно.
Кстати, я включил элемент кнопка, назвал ее "Обновить" и прицепил простенький макрос обновления и теперь все цивильно обновляется.
MF-er вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько задач на делфи: графика, программирование с пом. строк и базы данных. Pina_Kolada Помощь студентам 3 25.12.2010 14:53
Проблема создания базы данных visual studio 2008 rashid1988 Общие вопросы .NET 1 19.08.2010 13:29
проблема повторного открытия базы данных berkeley db ViY Помощь студентам 2 29.03.2010 19:52
вывести префикс соответствующий номеру телефона в отдельную ячейку kutt Microsoft Office Excel 5 11.08.2008 21:07
Создание базы данных: проблема Камикадзе Помощь студентам 5 25.10.2007 19:40