Консультация № 185842
17.04.2012, 12:59
79.51 руб.
0 29 3
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Из банка получаю выписку. В ней 35 столбцов - интересны 6 из них
1-Дата опер.
3-Номер докум.
5-Дебет
6-Кредит
10-Наименование
22-Назначение платежа
Не все строки нужны для анализа
Необходимо вручную выделить небходимые строки каким-либо способом (варианты: в дополнительном столбце проставляем 1 рядом с нужной строкой или выделить цветом фона/цветом текста).
В какой-то ячейке вводим дату начала, рядом дату конца.
После этого необходимо:
1- отобрать только в отмеченных строки
2-выбрать строки по дате между датой начала и датой конца
3-просуммировать в выбранных строках в столбце Кредит и вычесть сумму записей в столбце Дебет.

Обсуждение

Неизвестный
17.04.2012, 13:16
общий
в каком виде выписка? есть что-то в электронном виде? или бумажные документы сканируются и загоняются в Excel ?
Неизвестный
17.04.2012, 14:39
общий
В формате Excel 2003 (.xls)
Неизвестный
17.04.2012, 14:47
общий
Приложил файл
Прикрепленные файлы:
813207eb20e71e58cd23bb7c456044e0.xls
Неизвестный
17.04.2012, 15:52
общий
смотрю файл. сразу по нему вопросы.

1. всегда ли в выписке список начинается с 11 строки? лучше бы так было везде - проще настраивать.

2. в списке идут строки с данными, начиная с 11-й. конец списка определяется отсутствием даты в первом столбце ( ячейка 1 столбца 28 строки ) .

3. пусть пользователь выделит любым цветом ячейки в 1 столбце, нуные для расчета ( т.е. те, которые подходят по условие "1- отобрать только в отмеченных строки" ) .

4. пользователь вводит две граничные даты. по-умолчанию это 1 и последний день текущего месяца.

5. если в отмеченных строках дата подходит под условие и столбец F не пустой ( можно преобразовать в число ) , то это значение сохраняется в переменной.

6. как считать сумму кредита? условия те же ?


сделал черновик. посмотрите

https://rfpro.ru/upload/7936

ячейки уже выделены для примера. запустить макрос raschet. убирать цвет - "нет заливки" .
Неизвестный
17.04.2012, 15:54
общий
для п.4 можно сначала отсканировать все даты, найти минимальную и максимальную и предлагать их.
Неизвестный
17.04.2012, 20:44
общий
Здравствуйте, Евгений Юрьевич!
Если я правильно понял условия задачи, вот вроде бы правильное решение.
Если так, занесу в ответ.
Прикрепленные файлы:
c9b7be58e717da4ca6cf9157cb7d02dc.xls
Неизвестный
18.04.2012, 08:11
общий
Не очень разобрался в логике вашего решения
1 Отметил все записи за 12.04.2012 поставив 1 в столбце AJ
2 Начальную и конечную дату тоже поставил 12.04.2012
3 Ваше решение 0 а должно быть -46 238.46
Неизвестный
18.04.2012, 08:45
общий
Уточнения
1 Список всегда начинается с 11 строки
2 Да конец списка определяется отсутствием даты в столбце А, но количество записей(строк) может быть любым. Это зависит от запроса в банк на какие даты получить выписки.
3 Да нужные строки проще выделить вводом 1 в столбце AJ
4 Даты в выписке могут быть за 2 месяца, а интересует к примеру несколько дней подряд
5 содержимое столбца F для условия не важно (условие выборки - наличие 1 в столбце AJ и дата в интервале)
6 Для дебета и кредита условия одинаковые

Уточню: самое простое для меня решение это в столбец AJ ввести 1 напротив интересующих меня строк, потом отсортировать по наличию 1 в столбце AJ. Удалить все строки где нет 1 столбце AJ. Просуммировать столбцы Дебет и Кредит, найти их разницу.

Хотелось бы универсальности. Выписку могу легко получить за год- это тысячи записей, допустим мне интересен Февраль- тогда по дате вручную проставлю 1 напротив интересующих меня строк за весь февраль месяц . Ввожу дату с 22 по 27 февраля. и Хотелось бы получить ответ. Интересна логика выборки по условиям, а суммы я и сам посчитаю
Макрос ваш понравился
Возможно ли следующее
Внизу в ячйки вводятся даты, а дебет и кредит заносятся рядом с датами. Так мне можно будет анализировать разные даты.
Неизвестный
18.04.2012, 10:15
общий
Ответы на вопросы по решению задания на основе черновика ( ссылка была ранее ) :
1. В программе жестко забит номер строки, с которой начинается обработка строк. Нужно внести изменения в текст процедуры, чтобы обработка начиналась с другой строки - будет видно в описании где что менять.
2. Конец списка определяется автоматически, независимо от длины списка. Главное условие - в столбце 1 должно быть значение, которое можно преобразовать в дату.
3. Не думаю, что вводить 1 в столбец AJ будет проще - он очень далеко вправо. Удобнее выделить ячейку в 1 столбце нужной строки - делается двумя кликами мышки.
4. Пользователь вводит начальную и конечную дату для отбора. В решение попадут строки, у которых дата операции ( столбец 1 ) находится в этом диапазоне включительно. По-умолчанию предлагается текущий месяц, но можно брать минимальную и максимальную даты из всего списка ( сейчас так переделаю ) .
5. В п.3 уже писал про выборку необходимых строк для расчета, а в п.4 про отбор по дате.

Добавлю в сообщение кроме дебета и кредита разницу " Сальдо = " Дебет-Кредит

Ввод дат внизу в ячейках не очень удобен - список может быть длинный и сложно определить, куда выводить значения. Проще на "Лист2" выводить в 5 столбцов варианты условий и результат - будет уже готовый отчет.

Сейчас переделаю макрос и посмотрите результат.
Неизвестный
18.04.2012, 10:43
общий
18.04.2012, 10:45
Цитата: 393265
Не очень разобрался в логике вашего решения
1 Отметил все записи за 12.04.2012 поставив 1 в столбце AJ
2 Начальную и конечную дату тоже поставил 12.04.2012
3 Ваше решение 0 а должно быть -46 238.46


1. Я отметил не все записи в столбце AJ, а только строки 12,14,16,20,21,22,25,26. Отметил для примера таким образом, чтобы видно было, что задача правильно считается.
2. Для места введения начальной и конечной дат выбраны ячейки AK9 и AL9. Начальная дата в ячейке AK9 введена для примера 12.04.2012. Конечная дата для примера в ячейке AL9 введена 16.04.2012. В ячейках D25:D27 опять же для примера даты заменены на соответственно 14-16.04.2012.
3. В ячейках AK11:AL27 введены символы "1" в те ячейки, которые соответствуют условиям "больше начальной даты" и "меньше конечной даты". Отобраны начиная с 13.04.2012 до 15.04.2012 включительно. Они введены просто для наглядной проверки правильности выбора в формуле пересечения 3-х условий и могут быть стерты.
4. В результате в ячейке F33 -782650.
Вы скачали мой приклепленный файл?
Неизвестный
18.04.2012, 10:56
общий
Скачал конечно же Ваш файл
Но вы предлагаете мне решение которое усложняет анализ а не упрощает его.
Мне надо в трех столбцах проставлять единички что-ли ?
Хотелось бы просто отметить нужные мне строки и получить результат по интервалу дат. Непонятно наличие кучи единичек.
Посмотрите переписку с Филатовым Евгением Геннадьевичем
Неизвестный
18.04.2012, 10:57
общий
Вот ссылка на дополненный файл. В тексте макроса подробно описано действие команд.

консультация 185842 дополнение

Отбор осуществляется закрашиванием первого столбца ячеек. дата вводится вручную из того диапазона, что есть в выписке.
Неизвестный
18.04.2012, 10:59
общий
Вы прямо читаете мои мысли как я хотел бы сделать. Я думал что на другой лист сделать сложнее. Конечно же на другом листе будет намного нагляднее. Спасибо!
Неизвестный
18.04.2012, 11:09
общий
Все прекрасно. На этом файле все работает. Спасибо большое. Конечно же выделение цветом намного лучше. Все пояснения в макросе понятны.
Сейчас получу файл из банковской программы и проверю как там сработает на большом количестве записей. Результат сообщу. Может не сегодня, а завтра.
Очень приятно было переписываться с Вами.
Неизвестный
18.04.2012, 11:13
общий
Цитата: 393265
Мне надо в трех столбцах проставлять единички что-ли ?

Я же писал: В ячейках AK11:AL27 введены единички для наглядной демонстрации. "Они введены просто для наглядной проверки правильности выбора в формуле пересечения 3-х условий и могут быть стерты".
Для работы Вашей задачи достаточно ввести начальную, конечную даты, единички в столбец AJ.... И ВСЁ!
То есть как Вы и хотели. Результат в ячейке F33.
Неизвестный
18.04.2012, 11:17
общий
Посылаю файл без проверочных единичек в столбцах AK11:AL27
Прикрепленные файлы:
b06ebcde92bc7bbe0c3baa12af7ae533.xls
Неизвестный
18.04.2012, 11:25
общий
Вот еще подкорректированный файл.

консультация 185842 дополнение 2

В полученный файл выписки необходимо добавить макрос из этого файла. Выделить цветом нужные строки для расчета. Любой цвет будет восприниматься как выбор. Чтобы строка не считалась, нужно убрать заливку ( "Нет заливки" из списка ) .

На Лист2 ( он должен существовать именно с таким наименованием, как и Лист1 ) автоматически сформируется шапка таблицы ( если была - просто поверх заполнится ) . Находится первая пустая строка и в ней выводятся результаты запроса. Вроде правильно формулу записал - Сальдо = Дебет - Кредит.
Неизвестный
18.04.2012, 11:29
общий
Я еще раз в вашем прямо файле напротив дат за 12.04.2012 поставил все единички. Начальная дата 12.04.2012, конечная дата 12.04.2012
У вас результат в ячейке F33 результат 0 (ноль), а должно быть -46238.46
Неизвестный
18.04.2012, 11:40
общий
Прошу прощения за настойчивость, но можно еще в макросе прописать скрытие столбцов , оставив только видимыми столбцы A, C, E, F, J, V
Неизвестный
18.04.2012, 11:59
общий
Достаточно добавить в код макроса перед настройкой шапки на Лист2

Worksheets("Лист1").Columns("B:B").EntireColumn.Hidden = True
Worksheets("Лист1").Columns("D:D").EntireColumn.Hidden = True
Worksheets("Лист1").Columns("G:I").EntireColumn.Hidden = True
Worksheets("Лист1").Columns("K:U").EntireColumn.Hidden = True
Неизвестный
18.04.2012, 13:37
общий
Цитата: 393265
Я еще раз в вашем прямо файле напротив дат за 12.04.2012 поставил все единички. Начальная дата 12.04.2012, конечная дата 12.04.2012
У вас результат в ячейке F33 результат 0 (ноль), а должно быть -46238.46


Понятно. Единственно у меня было неправильно потому, что в понятие "выбрать строки по дате между датой начала и датой конца " я понимал что "между", а не включая начальную и конечную даты.
Пожалуйста, исправил за секунду. Теперь Ваш результат.
См. прикрепленный файл.
Прикрепленные файлы:
d305cc6856b1e84b1ef938f807ad81ef.xls
Неизвестный
18.04.2012, 14:36
общий
Результат переместил в ячейку F8, чтобы не было циклических ссылок, и "расширил" формулу до 10000-ной строки (на 10000-27 строк). См. прикрепленный файл.
Прикрепленные файлы:
c9a7013d1bb9bc67ef7f2ecbd0e5ea4b.xls
Неизвестный
18.04.2012, 15:09
общий
Спасибо теперь все понятно. Решение правильное.
Но вот то что предложил Филатов Евгений Геннадьевич как-то изящнее.
Но ваше решение проще в реализации . Спасибо !
Неизвестный
18.04.2012, 16:00
общий
это ответ
Здравствуйте, Юренков Евгений Юрьевич!
Вот одно из правильных решений. Для удобства "пролистывания" по ширине и высоте осуществлено закрепление областей. Результат (формула) в ячейке F8 (во избежание перекрестных ссылок ячейка располагается до области данных). Формула в настоящее время выполнена в виде массива и рассчитана почти на 10000 (с 11 по 10000 строки) строк-данных и легко "расширяема". Даты начала и конца вводятся в ячейки AK9 и AL9 соответственно. В соответствии с заданием строки выбираются путем установки символа "1" в соответствующие строки столбца AJ. Ненужные столбцы легко скрываются кнопками Excel.
См. прикрепленный файл.
Удачи!
Прикрепленные файлы:
давно
Модератор
137394
1850
18.04.2012, 20:10
общий
это ответ
Здравствуйте, Юренков Евгений Юрьевич!
По моему мнению можно получить более удобный способ выборки и подсчёта результатов по выборке, используем стандартное средство АвтоФильтр.
При этом где-то в других ячейках мне не надо задавать диапазон дат.
Для примера взял таблицу из предыдущего решения Charlie - там данные разнообразнее и есть с чем сверить результат.
Выделяем ячейки А10:AJ10
Меню-Данные-Фильтр-Автофильтр
Станем на ячейку, например, F33 (за пределами исходных данных), где будем получать искомые итоги
Из списка функций (Другие функции - математические) выберем функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ
В Мастере функции выберем номер функции 9 и укажем диапазон кредитов, и, далее таким же образом минус такая же функция для дебетов.
То есть получим в ячейке F33

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;F11:F27)-ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;E11:E27)

Чтобы сравнивать с предыдущим решением Charlie, наставим в столбце AJ там же где и были единицы
Ну, теперь можно фильтровать данные как Вам удобно, при этом получая на экране только отображение данных, удовлетворяющих Вашим условиям и подсчитанный итог по этим данным.

Например, по дате документа:
нажмём треугольничек фильтра в шапке таблицы-Условие

больше или равно 13.04.2012
и
меньше или равно 15.04.2012

(условие отбора как и в предыдущем решении)

и в столюце AJ отфильтруем только значения =1

Обратите внимание, в столбце, где в фильтр выбраны не все данные, треугольничек фильтра имеет другой цвет.
При этом получим результат выборки и посчитанную с выбранными данными формулу в F33.

Достоинство решения -можно фильтровать данные и при этом видеть не только результат, но и откуда этот результат берётся.
Можно быстро менять условия.
Можно безо всякого напряжения переопределить фильтр, например, на нужные даты или задать условия и по другим столбцам.
Чтобы отобразить все данные - Данные - Фильтр - Отобразить всё.

Спрятать столбцы просто - выделяете ненужные - формат-столбец-скрыть.

Файл прилагаю.

Здесь сделана таблица с макросом: На листе "Загрузка выписки" организована кнопка, по нажатию которой выдаётся стандартное окно Excel для выбора файла выписки, выбранная выписка подгружается в таблицу на соседний лист, скрываются неинтересные столбцы, организуется фильтр и подсчет итогов по фильтру. Дата операции должна начинаться на клетке A11, то есть убран ручной процесс организации фильтра и скрываются столбцы. Далее работа с фильтром как выше описано - выбираете диапазон дат, наставляете где надо дополнительные единицы и отфильтровываете по ним.
Прикрепленные файлы:
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
19.04.2012, 10:44
общий
это ответ
Здравствуйте, Юренков Евгений Юрьевич!

Переношу ответ из мини-форума.

консультация 185842 ответ

Решение выполнено с помощью макроса. В полученный файл выписки нужно добавить макрос из образца или открыть образец вместе с выпиской и запустить.
В первом столбце нужных строк заливкой отметить строки, которые будут входить в отчет. Затем запустить макрос.
Пользователю будет предложено ввести начальную и конечную дату расчета. Даты отбираются включительно между этими значениями ( если выбрать начальную и конечную дату одинаковыми, то отчет будет только за этот день ) . Даты берутся из столбца 1, начиная с 11 строки и пока не будет найдена первая пустая ячейка ( либо в ячейке будет значение, которое нельзя преобразовать в дату ) . По-умолчанию пользователю предлагается минимальная и максимальная дата в этом списке. Количество строк для отбора ограничено 65525 ( максимальное значение строк на листе Excel ) .
Макрос производит сканирование значений дат из первого столбца, затем если они подходят под условие, проверяется наличие заливки ( чтобы строка не бралась в расчет, нужно отменить заливку ячейки, выбрав из списка "нет заливки" ) . Если заливка есть, то в переменные дебета и кредита добавляется значение столбцов 5 и 6 с предварительной проверкой возможности преобразования значений ячеек в число.
После просмотра всех строк на экран выводится результат и одновременно на Лист2 выписки формируется шапка таблицы ( или поверх существующей шапки, если уже делались отчеты ) и в первой пустой строке выводятся данные условий отбора и результаты. Одновременно на Лист1 скрываются ненужные столбцы.
Выделив заливкой другие ячейки и убрав заливку в ненужных, можно еще раз запустить макрос с другими условиями дат. Результаты допишутся на Лист2 в новой строке.

В тексте макроса приведено подробное описание команд. Если будут вопросы - пишите в мини-форум.

С уважением.
Неизвестный
19.04.2012, 12:33
общий
Проверил сегодня на данных сначала года. Все отлично работает. Спасибо за помощь !
давно
Модератор
137394
1850
19.04.2012, 20:22
общий
20.04.2012, 22:04
Здесь сделана таблица с макросом: На листе "Загрузка выписки" организована кнопка, по нажатию которой выдаётся стандартное окно Excel для выбора файла выписки, выбранная выписка подгружается в таблицу на соседний лист, скрываются неинтересные столбцы, организуется фильтр и подсчет итогов по фильтру. Дата операции должна начинаться на клетке A11, то есть убран ручной процесс организации фильтра и скрываются столбцы. Далее работа с фильтром как выше описано - выбираете диапазон дат, наставляете где надо дополнительные единицы и отфильтровываете по ним.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
20.04.2012, 15:09
общий
Адресаты:
Спасибо за решение
Оно в чем то тоже интересно т.к. можно убрать фильтрами ненужные стоки по датам.
Попробую использовать фильтр по дате еще и в решении Филатова Евгения Геннадьевича
Форма ответа