Страницы: 1 2 След.
RSS
Выборка данных по условию
 
Добрый всем день.  
Пытаюсь извлечь из базы нужные данные, но пока не очень получается.  
Они (данные) в основном текстовые.  
Подскажите, пожалуйста, можно ли использовать в моем случае сводную таблицу, я попробовал, но что-то не получается. Или для решения есть другие способы?  
Опыта создания сводных таблиц не имею.  
В книге Уокенбаха Excel 2007: Библия пользователя и здесь в примерах раскрыты немного другие случаи, не понял как их применить к моей проблеме. Затык произошел при создании макета - какие поля куда располагать.  
 
В качестве примера выкладываю простой файл.  
Хотя в реале все будет посложнее (думаю, что если пойму смысл, то смогу его потом под себя прикрутить).  
Наивный)))  
Заранее большое спасибо.
 
В реале есть файл в Экселе, на одном листе которого отражены командировки, на другом - отпуска, на третьем - больничные и т.д.    
Подсчет количества отсутствующих в данный момент времени я сделал.  
Хотелось бы добавить лист, на котором будут отражаться персональные данные этих людей (ФИО, должность и пр.) по категориям, например, сначала все, кто в командировке, затем - в отпуске и т.д.  
Сам вижу это как-то так (см. файл)  
Насколько я понял, сводная таблица не может брать данные с разных листов, способ предложенный здесь - http://www.planetaexcel.ru/tip.php?aid=233 - тоже не подходит, т.к. не выполняются исключения.    
Может быть придется делать сводные таблицы по каждой причине отсутствия, а потом, на их основе, обобщающий отчет.  
Вообщем, буду рад любым советам с помощью каких инструментов Эксель это можно организовать.
 
Что-то мне подсказывает, что сводные таблицы - не мой метод  
Или я не прав?
 
Просьба к Юрию М.  
Уважаемый Юрий,    
нашел тему, в которой Вы уже помогали с решением аналогичной задачи:  
http://hghltd.yandex.net/yandbtm?text=%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%­D0%B8%D0%B5%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%20%D0%BF%D0%BE%­20%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8E&url=http%3A%2F%2Fwww.planetaexcel.ru%2Fforum.php%3Fthread_id%3D34011&fmode=inject&mime=html&l10n=ru&sign=268e9d8e6c4b7ad2fcda4742e1430f91&keyno=0  
Очень похоже на то, что мне надо, хоть я и надеялся, что можно будет без макросов обойтись, стандартными средствами Эксель.  
Если будет минутка, не поможете подредактировать тот макрос под мои условия.  
Заранее спасибо Вам.
 
Добрый день.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Добрый!  
Не то, что нужно - значит я условия не так объяснил.  
Критерием для копирования здесь служит столбец индикатор - если там 0, то это значит, что человек уже прибыл и находится на рабочем месте. А если 1 - то, что он находится в командировке. Вот тех людей, у которых 1 и надо копировать в другую таблицу или диапазон. Нумерация в моей таблице есть, 1, 2, 3, ... Ее я использую в др целях.  
К тому же исходная таблица постоянно расширяется.
 
Хотелось бы получить что-то примерно такого вида (форматирование не важно):  
 
СИДОРОВ 3 отдел в 20.11.2012 05.12.2012  
СМИРНОВ управление г 20.11.2012 05.12.2012  
ПУШКИН отдел снабжения д 25.11.2012 03.12.2012  
 
 
А я что не так сделал? Вы пример-то смотрели?  
 
---------  
13344
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, спасибо Вам, что помогаете.  
Пример смотрел.  
Допустим, что у последней фамилии Самойлов меняем дату убытия на 01.12, в столбце Индикатор появляется 1.  
Соответственно строка с данными Самойлова должна перемещаться в таблицу 2.  
Меняем дату на 3.12, то есть еще не уехал, и он из табл 2 должнен пропасть.
 
Постепенно склоняюсь к мысли, что, к сожалению, без макроса эту задачу не решить.  
К сожалению - потому что с макросами не дружу и все используемые мной макросы в данной программе - помощь наших глубоко уважаемых коллег по форуму, за что им еще раз выражаю огромную благодарность.  
Думаю, что макрос должен работать примерно так:  
1. Проверяет столбец Индикатор Таблицы1 (напр, командировки) сверху вниз.  
2. Находит в нем значение = 1.  
3. Копирует заранее определенные ячейки соответствующей строки на другой лист в итоговую таблицу (не всю строку - она длинная и из нее нужна только часть информации).  
4. Проверяет столбец Индикатор дальше вниз и в случае обнаружения ячеек со значением = 1 выполняет с соответствующими строками действия пункта 3.  
5. Затем макрос аналогично проверяет Таблицы2, 3 и т.д. (отпуска, больничные...), расположенные на следующих листах книги и дополняет итоговую таблицу данными из них.
 
К тому же хотелось бы еще добавить в итоговую таблицу столбец "Причина отсутствия", в котором бы в зависимости от того из какой таблицы в него попадают данные отмечалось:  
если из Таблицы1 (командировки) - командировка, если из Таблицы2 (отпуск) - отпуск и т.д.  
 
Практических знаний как сделать такой макрос у меня нет, поэтому и обращаюсь к Вам, форумчане, с просьбой о помощи.  
Спасибо всем.
 
{quote}{login=SerjVorotilov}{date=01.12.2012 05:22}{thema=}{post}  
 
Допустим, что у последней фамилии Самойлов меняем дату убытия на 01.12, в столбце Индикатор появляется 1.  
Соответственно строка с данными Самойлова должна перемещаться в таблицу 2.  
Меняем дату на 3.12, то есть еще не уехал, и он из табл 2 должнен пропасть.{/post}{/quote}  
 
А у меня равзе не так?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Было: "А у меня равзе не так?"... ТС упорно подводит к одному - ну очень хочется макросом, ни формулы с доп полями, ни расширенный фильтр, ни сводная не нужны... Тем более было объявлено, что собирать данные надо с 3 листов, емнип... А вот Ю_М, простите - Юрий_М, не спешит на помощь, однако... Подождем-с?...
 
{quote}{login= Владимир}{date=01.12.2012 05:38}{thema=Re: }{post}{quote}{login=SerjVorotilov}{date=01.12.2012 05:22}{thema=}{post}  
 
Допустим, что у последней фамилии Самойлов меняем дату убытия на 01.12, в столбце Индикатор появляется 1.  
Соответственно строка с данными Самойлова должна перемещаться в таблицу 2.  
Меняем дату на 3.12, то есть еще не уехал, и он из табл 2 должнен пропасть.{/post}{/quote}  
 
А у меня равзе не так?{/post}{/quote}  
 
 
Изменил у Самойлова дату на 1.12 - не вижу его четвертым в таблице ниже, после Пушкина.  
Извините.
 
Я же новый post_382054.xlsx выложил. Будьте внимательны.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Возврат - post_382059.xlsx... :) -84840-
 
{quote}{login=Z}{date=01.12.2012 05:47}{thema=}{post}Было: "А у меня равзе не так?"... ТС упорно подводит к одному - ну очень хочется макросом, ни формулы с доп полями, ни расширенный фильтр, ни сводная не нужны... Тем более было объявлено, что собирать данные надо с 3 листов, емнип... А вот Ю_М, простите - Юрий_М, не спешит на помощь, однако... Подождем-с?...{/post}{/quote}  
 
Не понял юмора. Можете помочь и хотите - помогайте, Вам люди спасибо скажут, если нет, ничего страшного. У людей разный уровень знаний, кто-то совсем простые вопросые задает, кто-то не очень - и что теперь смеяться над всеми кто что-то не знает в отличие от Вас? Люди обращаются сюда за помощью, а вынуждены подчас сталкиваться с иронией и насмешками. Не красиво, имхо.  
Я тактично все написал, стараясь максимально ясно изложить свою проблему, не куда Вас не подталкивал (выше оговаривал, что с удовольствием и благодарностью рассмотрю все предложенные варианты) - можете предложить формулой - отлично, макросом - здорово, сводной таблицей - замечательно.    
Посмотрел свою литературу, статьи здесь, на форуме, не нашел решения с помощью сводной таблицы, вот и написал, что, скорее всего, только макрос даст универсальность. Если Вы знаете как с помощью таблиц можно сделать - покажите на простом примере, с удовольствием у Вас поучусь.  
 
Теперь по существу.  
И ваше решение и Владимира предполагает:    
1. Добавление еще одного столбца с нумерацией, а он у меня есть (не в приложенном примере, извините, но я писал выше что в реале у меня идет сквозная нумерация. Оригинал файла не могу выложить по причинам его размера и конфиденциальности информации). Поэтому не очень красиво, что-ли, использовать два столбца с нумерацией.  
2. Четко оговоренный диапазон итоговой таблицы - говорю про количество строк. Заранее подсчитать это количество невозможно - сегодня, например, будет 20 отсутствующих, а завтра может быть 120 или 520 (штаты организации достаточно большие). Согласен, что неиспользуемые строки можно с помощью условного форматирования сделать невидимыми, но, думаю, что вы со мной согласитесь, это не очень профессионально.  
Я же ищу наиболее универсальный способ для решения вопроса и мне абсолютно не важно каким он окажется - макросом, сводной таблицей или другим, главное суть, а не метод.  
 
В любом случае спасибо Вам за внимание и помощь, надеюсь, что Вы правильно поймете все написанное.    
Если же я вас не так понял, то приношу самые искренние извинения.  
Надеюсь на дальнейшее сотрудничество.  
С уважением, Сергей.
 
ТС:"...Я же ищу наиболее универсальный способ для решения вопроса и мне абсолютно не важно каким он окажется - макросом, сводной таблицей или другим, главное суть, а не метод...".  
1 - Универсальный под вас - только по индивидульному покрою...  
2 - Правила: пример условный, но в реальной структуре и форматах с n-листов и сводного - так есть, надо этак...  
3 - Как пытались, что не получилось - на форуме уйма макросов на сбор/свод листов в одной книге (данных с листов на 1 лист)...    
Например, такое - http://www.rondebruin.nl/tips.htm, а в нем - http://www.rondebruin.nl/merge.htm...  
ps И, пожалуйста, не надо много слов - короче, конкретнее, по-деловому... ;) -41953-
 
Посмотрел файл - может не понял задачу? - простой фильтр по столбцу "Индикатор" чем не устраивает? И как-то нелогичен сам индикатор: 1 - отсутствует. Я бы наоборот писал: ноль - значит нет на месте :-)
 
1 обычно ассоциируется с "да", 0 - с "нет"  
столбец Индикатор (читай - индикатор отсутствия): отсутствует чел? - да - 1, нет - 0.  
Хочу на выходе получить автообновляемую таблицу или диапазон ячеек, расположенный на отдельном листе, в который с нескольких баз, расположенных на разных листах по типу отсутсвия (на одном - база убывших в командировку, на втором - в отпуск, на третьем - на больничном...), организованных в виде таблиц Эксель, будут собираться данные по отсутствующим людям в определенном порядке: сначала все убывшие в командировку, затем в отпуск и т.д.  
Критерием отбора нужных людей в эту таблицу и должен, по моему мнению, служить столбец Индикатор - если в нем единица, то несколько определенных ячеек из этой строки должны попадать в итоговую таблицу.  
По простому - это список отсутствующих.  
Постараюсь сделать максимально подробный пример.
 
Чем автофильтр не устраивает - не ответили. В столбце "Индикатор" рисуем не единички/нолики, а признаки, как в табеле: "К", "Б", "О", и т.д. И по ним фильтруем.
 
Отвечаю: автофильтр фильтрует диапазон на листе или таблицу эксель, а у меня данные находятся в разных таблицах на разных листах. Эти таблицы между собой частью столбцов сходятся а частью отличаются. В каждой из них хранится информация по соответствующим перемещениям в течение года. Информация обновляется ежедневно. Надо извлечь отсутствующих сейчас, т.е. сегодня тех кто отсутствует 1 декабря, завтра данные поменяются - кто-то уедет, кто-то приедет и нужны будут данные отсутствующих 2 декабря и т.д.  
Если я Вас правильно понял, то мне придется сделать фильтр каждой таблицы и получить по каждой позиции свой итог - одна выборка по командировкам, вторая по отпускам, третья по больничным... А мне нужна одна общая таблица вмещающая в себя данные по убывшим из всех исходных таблиц.  
Реально это сделать?  
Я сейчас постараюсь сваять максимально приближенный пример, как сделаю - сразу выложу.
 
Давайте, только по возможности реальную структуру. И поясниловку внутри.
 
{quote}{login=}{date=01.12.2012 10:42}{thema=}{post}Если я Вас правильно понял, то мне придется сделать фильтр каждой таблицы и получить по каждой позиции свой итог - одна выборка по командировкам, вторая по отпускам, третья по больничным... А мне нужна одна общая таблица вмещающая в себя данные по убывшим из всех исходных таблиц.{/post}{/quote}Не совсем так: есть ОДНА общая таблица, а из неё фильтрами/макросами делаем НУЖНЫЕ таблицы. Нет смысла вести несколько исходных - нужна некая таблица-база, по которой создаются отчёты (выборки).
 
{quote}{login=Юрий М}{date=01.12.2012 10:49}{thema=Re: }{post}{quote}{login=}{date=01.12.2012 10:42}{thema=}{post}Если я Вас правильно понял, то мне придется сделать фильтр каждой таблицы и получить по каждой позиции свой итог - одна выборка по командировкам, вторая по отпускам, третья по больничным... А мне нужна одна общая таблица вмещающая в себя данные по убывшим из всех исходных таблиц.{/post}{/quote}Не совсем так: есть ОДНА общая таблица, а из неё фильтрами/макросами делаем НУЖНЫЕ таблицы. Нет смысла вести несколько исходных - нужна некая таблица-база, по которой создаются отчёты (выборки).{/post}{/quote}  
 
Так не получится, к сожалению.  
Пример пытаюсь сделать, нужно время. Вы до скольки на форуме?
 
Ещё час - полтора
 
Как-то так
 
Запуск по кнопке устроит? Если нет - придумайте событие.
 
Кнопка "Обновление" на листе с итоговой таблицей или кнопка на клавиатуре?))  
Устроит любая.
 
Плохой пример: столбец "Индикатор" всегда в разном месте. Нужно унифицировать.
 
Не вариант.  
Юрий, давайте через мыло?  
Ок?
Страницы: 1 2 След.
Читают тему
Наверх