Здравствуйте. Реестр сделок в Примере, исходный вид и тот, который должен получиться. Сейчас с помощью фильтра сортирую сделки по активу (E,G), потом по цене и суммирую кол-во, и сборы (GKLM). Потом копирую, специальной вставкой вставляю в верхнюю строку и удаляю лишние строки. Получается, но очень медленно. Один файл на 700 (печатных) листах, и на такой файл уходит 2-3 рабочих дня! Замучалась, и месяц нужно "закрывать". Читала здесь на форуме и про "сцепить" и объединить ячейки без потери данных. Но "сцепить" вроде здесь не подходит...можно в сводную таблицу, но потом эту сводную таблицу мне нужно привести обратно в тот же вид , с теми же полями, и без всяких лишних строк, т.к. потом готовый файл подтягиваем в программу учета. Посоветуйте, что делать! Ну или на крайний случай, подскажите макрос, чтоб специальную вставку значений делать с "горячей клавиши". Office 2003 года.
Здравствуйте. Реестр сделок в Примере, исходный вид и тот, который должен получиться. Сейчас с помощью фильтра сортирую сделки по активу (E,G), потом по цене и суммирую кол-во, и сборы (GKLM). Потом копирую, специальной вставкой вставляю в верхнюю строку и удаляю лишние строки. Получается, но очень медленно. Один файл на 700 (печатных) листах, и на такой файл уходит 2-3 рабочих дня! Замучалась, и месяц нужно "закрывать". Читала здесь на форуме и про "сцепить" и объединить ячейки без потери данных. Но "сцепить" вроде здесь не подходит...можно в сводную таблицу, но потом эту сводную таблицу мне нужно привести обратно в тот же вид , с теми же полями, и без всяких лишних строк, т.к. потом готовый файл подтягиваем в программу учета. Посоветуйте, что делать! Ну или на крайний случай, подскажите макрос, чтоб специальную вставку значений делать с "горячей клавиши". Office 2003 года.yutatya
подскажите макрос, чтоб специальную вставку значений делать с "горячей клавиши". Office 2003 года
[vba]
Код
Sub PastValue() ' сочетание клавиш: Ctrl+Shift+V Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
[/vba]
Цитата (yutatya)
исходный вид и тот, который должен получиться
Во вложении только одна таблица
Цитата (yutatya)
подскажите макрос, чтоб специальную вставку значений делать с "горячей клавиши". Office 2003 года
[vba]
Код
Sub PastValue() ' сочетание клавиш: Ctrl+Shift+V Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
Точно, таблица одна, торопилась на работе...Сейчас поменяла!. В Примере - на одном листе исходный файл, а на другом, который получается после сворачивания. Все сделки находятся на одном листе Excel, соответственно и свернутый файл также на одном листе. Важно, чтобы все поля сохранили исходный вид, можно поменять только значения в ячейках. Алгоритм моих действий такой: сначала выбираю биржевой код, потом тип сделки B или S, потом по очереди сортирую каждую цену и суммирую количество бумаг по одной цене, и комисси. Потом копирую, и с помощью специальной вставки вставляю значения, потом удаляю лишние строки. Вот как-то так. Замучалась! Плюс человеческий фактор- то где-то лишнего прибавишь, то комиссии не скопируешь, дурдом одним словом. Serge_007, спасибо! а вы могли бы пошагово написать, как этот макрос вставить в мою таблицу. Я сегодня читала-читала форум, так и не поняла. Смогла только найти, где макрос может быть записан в примере, а как в свою таблицу вставить, так и не поняла.
Точно, таблица одна, торопилась на работе...Сейчас поменяла!. В Примере - на одном листе исходный файл, а на другом, который получается после сворачивания. Все сделки находятся на одном листе Excel, соответственно и свернутый файл также на одном листе. Важно, чтобы все поля сохранили исходный вид, можно поменять только значения в ячейках. Алгоритм моих действий такой: сначала выбираю биржевой код, потом тип сделки B или S, потом по очереди сортирую каждую цену и суммирую количество бумаг по одной цене, и комисси. Потом копирую, и с помощью специальной вставки вставляю значения, потом удаляю лишние строки. Вот как-то так. Замучалась! Плюс человеческий фактор- то где-то лишнего прибавишь, то комиссии не скопируешь, дурдом одним словом. Serge_007, спасибо! а вы могли бы пошагово написать, как этот макрос вставить в мою таблицу. Я сегодня читала-читала форум, так и не поняла. Смогла только найти, где макрос может быть записан в примере, а как в свою таблицу вставить, так и не поняла.yutatya
Сообщение отредактировал yutatya - Среда, 29.05.2013, 00:42
У меня создаётся глубокое впечатление, что задача легко решается построением запроса. Или нескольких последовательных. Прямо к файлу-источнику. При этом данные явно откуда-то с SQL-сервера выгружены - неужто оттуда нельзя получить выгрузку в нужном виде? Кстати, Татьяна, вы зачем исходный CSV-файл убрали? - это нам ведь ещё и ваш неправильный импорт обрабатывать придётся...
Цитата (yutatya)
на такой файл уходит 2-3 рабочих дня!
Обалдеть. Вот куда уходят деньги корпораций. ИМХО, простенький SQL-запрос будет выполняться несколько секунд - дольше выходной файл форматировать и записывать... .
И по поводу "алгоритма" - расскажите всё же, можно подробнее - по каким признакам вы суммируете несколько записей, что в строках должно совпадать, чтобы их можно было суммировать? И какие именно столбцы суммировать? Вы же пример "готового" не показываете... Я так подозреваю, что нужно просуммировать [кол-во актива] и все [комиссии] по всем "одинаковым" (БК, КС, Цена) сделкам. Вот только непоняточка - объединять только по цене сделки? за один день? за неделю? за месяц? И, самое главное - у вас же все изначальные записи - уникальны (поскольку имеют различные DateTime и ВнутренийНомер). В результирующих записях - что вы пишете в эти поля?
Цитата (Матрёна)
В "новом" файле - два одинаковых листа.
По идее, девушка пыталась нам показать, что столбцы должны остаться теми же...
У меня создаётся глубокое впечатление, что задача легко решается построением запроса. Или нескольких последовательных. Прямо к файлу-источнику. При этом данные явно откуда-то с SQL-сервера выгружены - неужто оттуда нельзя получить выгрузку в нужном виде? Кстати, Татьяна, вы зачем исходный CSV-файл убрали? - это нам ведь ещё и ваш неправильный импорт обрабатывать придётся...
Цитата (yutatya)
на такой файл уходит 2-3 рабочих дня!
Обалдеть. Вот куда уходят деньги корпораций. ИМХО, простенький SQL-запрос будет выполняться несколько секунд - дольше выходной файл форматировать и записывать... .
И по поводу "алгоритма" - расскажите всё же, можно подробнее - по каким признакам вы суммируете несколько записей, что в строках должно совпадать, чтобы их можно было суммировать? И какие именно столбцы суммировать? Вы же пример "готового" не показываете... Я так подозреваю, что нужно просуммировать [кол-во актива] и все [комиссии] по всем "одинаковым" (БК, КС, Цена) сделкам. Вот только непоняточка - объединять только по цене сделки? за один день? за неделю? за месяц? И, самое главное - у вас же все изначальные записи - уникальны (поскольку имеют различные DateTime и ВнутренийНомер). В результирующих записях - что вы пишете в эти поля?
Цитата (Матрёна)
В "новом" файле - два одинаковых листа.
По идее, девушка пыталась нам показать, что столбцы должны остаться теми же... AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Среда, 29.05.2013, 03:04
простенький SQL-запрос будет выполняться несколько секунд - дольше выходной файл форматировать и записывать... .
AndreTM! 1. Судя по информации, у yutatya нет и не может быть другого доступа к БД, кроме традиционного - пользовательский экспорт в EXCEL. 1.1. И ЭТО _ АБСОЛЮТНО ПРАВИЛЬНО!!! 2. А к Service Desker из IT в этой "конторе", похоже, "на дикой козе не подъедешь" - аналитический пользователь вынужден "бодаться" с таким огромным объемом информации каждый месяц (а может быть, и каждый день). 3. Отсутствие у yutatya информации о существовании некоторых удобных штатных режимов EXCEL - не такое уж большое прегрешение yutatya перед EXCEL. 3.1. Людям свойственно быстро забывать, что они совсем НЕДАВНО САМИ БЫЛИ ЧАЙНИКАМИ! 3.2. Особенно это характерно для людей из IT. 4. yutatya просто нужно четко описать алгоритм - лучше по пунктам.
Цитата (AndreTM)
простенький SQL-запрос будет выполняться несколько секунд - дольше выходной файл форматировать и записывать... .
AndreTM! 1. Судя по информации, у yutatya нет и не может быть другого доступа к БД, кроме традиционного - пользовательский экспорт в EXCEL. 1.1. И ЭТО _ АБСОЛЮТНО ПРАВИЛЬНО!!! 2. А к Service Desker из IT в этой "конторе", похоже, "на дикой козе не подъедешь" - аналитический пользователь вынужден "бодаться" с таким огромным объемом информации каждый месяц (а может быть, и каждый день). 3. Отсутствие у yutatya информации о существовании некоторых удобных штатных режимов EXCEL - не такое уж большое прегрешение yutatya перед EXCEL. 3.1. Людям свойственно быстро забывать, что они совсем НЕДАВНО САМИ БЫЛИ ЧАЙНИКАМИ! 3.2. Особенно это характерно для людей из IT. 4. yutatya просто нужно четко описать алгоритм - лучше по пунктам.Матрёна
Матрёна, так я же не спорю... По получению выгрузки: я никоим образом не считал, что ТС - имеет какие-то права и знания по серверу. Подразумевалось, что надо обращаться к тем, кто выгружает (или настраивал выгрузку). Но это если данные - со своего сервера... Про "простенький SQL-запрос" - это не в сторону ТС и фирмы (типа, этого нет у вас, а чего не сделали?), - это как раз то, что я предлагаю сделать клиенту. Чтобы вручную не лопатить весь этот объем, а культурно нажать на пимпочку - и получить всё в лучшем виде
[offtop]Про недавних чайников - это в мою сторону? Удивлён...[/offtop]
Матрёна, так я же не спорю... По получению выгрузки: я никоим образом не считал, что ТС - имеет какие-то права и знания по серверу. Подразумевалось, что надо обращаться к тем, кто выгружает (или настраивал выгрузку). Но это если данные - со своего сервера... Про "простенький SQL-запрос" - это не в сторону ТС и фирмы (типа, этого нет у вас, а чего не сделали?), - это как раз то, что я предлагаю сделать клиенту. Чтобы вручную не лопатить весь этот объем, а культурно нажать на пимпочку - и получить всё в лучшем виде
[offtop]Про недавних чайников - это в мою сторону? Удивлён...[/offtop]AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Среда, 29.05.2013, 08:46
Оффтоп: Про недавних чайников - это в мою сторону? Удивлён...
Я никого не имела в виду, тем более, Вас! Это просто - мои наблюдения "из жизни IT"...
Если в "конторе" IT-спец будет по первому зову "лезть в БД" с запросом - это, как минимум, несерьезно! А как максимум - чревато последствиями после "встречи с БЕЗАми". Не сомневаюсь, что в "конторе" yutatya в IT - Service Desker-ов "НЕМЕРЕНО". Но им такие "мелкие проблемы юзеров" - "фиолетовы".
yutatya! А Вы обращались к Вашему руководителю с просьбой о написании служебки в IT - на предмет написания макроса или, что еще лучше, предоставления регулярного, регламентного, SQL-запроса в адрес Вашего подразделения? Это Вас "НАПРОЧЬ лишило бы головной боли" при выполнении отчета!
AndreTM!
Цитата (AndreTM)
Оффтоп: Про недавних чайников - это в мою сторону? Удивлён...
Я никого не имела в виду, тем более, Вас! Это просто - мои наблюдения "из жизни IT"...
Если в "конторе" IT-спец будет по первому зову "лезть в БД" с запросом - это, как минимум, несерьезно! А как максимум - чревато последствиями после "встречи с БЕЗАми". Не сомневаюсь, что в "конторе" yutatya в IT - Service Desker-ов "НЕМЕРЕНО". Но им такие "мелкие проблемы юзеров" - "фиолетовы".
yutatya! А Вы обращались к Вашему руководителю с просьбой о написании служебки в IT - на предмет написания макроса или, что еще лучше, предоставления регулярного, регламентного, SQL-запроса в адрес Вашего подразделения? Это Вас "НАПРОЧЬ лишило бы головной боли" при выполнении отчета! Матрёна
Сообщение отредактировал Матрёна - Среда, 29.05.2013, 10:03
Я вроде бы подробно написала алгоритм, но видимо слишком подробно. Попробую ответить на ваши вопросы: Пошагово: Реестр сделок выгружаем с сайта брокера, поэтому получить можем файл только в таком виде в формате csv. В этом посте выкладываю уникальный файл, убираю только конфиденциальную инфу. Столбцы, по которым суммируем, выделила зеленым цветом. 1)Реестр сделок формируем ежедневно. Поэтому сворачивать нужно внутри дня. 2)правильно, каждая строка-это сделка-она уникальна, т.к. у нее есть свой номер. Но на это "закрываем" глаза. Файл сворачиваем, чтобы уменьшить количество транзакций. Поэтому а)сначала сортируем по биржевому активу (например, Фьючерсный контракт SBRF-6.13- столбец Е) или по биржевому коду (столбец F). б) далее сортируем по коду сделки (покупка или продажа, столбец G). в) ну а потом сортируем по цене (столбец H). Конкретный актив купленный по одной цене или проданный по одной цене суммируем, также суммируем комиссии (столбцы IGKLM). в)общее количество и суммы комиссий вставляем в любую из отсортированных строк, лишние удаляем. Естественно что количество и суммы всех комиссий в новом файле должны сойтись с исходным файлом. Но в исходном файле было например 5 строк, а в готовом 1 строка. А насчет IT-отдела, они заняты более важным делом. А мы так, пехота.
Я вроде бы подробно написала алгоритм, но видимо слишком подробно. Попробую ответить на ваши вопросы: Пошагово: Реестр сделок выгружаем с сайта брокера, поэтому получить можем файл только в таком виде в формате csv. В этом посте выкладываю уникальный файл, убираю только конфиденциальную инфу. Столбцы, по которым суммируем, выделила зеленым цветом. 1)Реестр сделок формируем ежедневно. Поэтому сворачивать нужно внутри дня. 2)правильно, каждая строка-это сделка-она уникальна, т.к. у нее есть свой номер. Но на это "закрываем" глаза. Файл сворачиваем, чтобы уменьшить количество транзакций. Поэтому а)сначала сортируем по биржевому активу (например, Фьючерсный контракт SBRF-6.13- столбец Е) или по биржевому коду (столбец F). б) далее сортируем по коду сделки (покупка или продажа, столбец G). в) ну а потом сортируем по цене (столбец H). Конкретный актив купленный по одной цене или проданный по одной цене суммируем, также суммируем комиссии (столбцы IGKLM). в)общее количество и суммы комиссий вставляем в любую из отсортированных строк, лишние удаляем. Естественно что количество и суммы всех комиссий в новом файле должны сойтись с исходным файлом. Но в исходном файле было например 5 строк, а в готовом 1 строка. А насчет IT-отдела, они заняты более важным делом. А мы так, пехота.yutatya
Сочетания клавиш задать можно так: 1. На панели инструментов Visual Basic нажать кнопку 'Выполнить макрос' (или просто нажать сочетание клавиш Alt+F8) 2. Выбрать из списка макрос PasteValue 3. Нажать кнопку 'Параметры' 4. При английской раскладке клавиатуры нажать Shift и V 5. Нажать Ok
Цитата (yutatya)
пошагово написать, как этот макрос вставить в мою таблицу
В таблицу макрос не надо вставлять, да и не получится это
Сочетания клавиш задать можно так: 1. На панели инструментов Visual Basic нажать кнопку 'Выполнить макрос' (или просто нажать сочетание клавиш Alt+F8) 2. Выбрать из списка макрос PasteValue 3. Нажать кнопку 'Параметры' 4. При английской раскладке клавиатуры нажать Shift и V 5. Нажать OkSerge_007
Serge_007, прикольно! Все работает! Огромное спасибо, хоть так облегчу свою работу. Вот только пока у меня получилось только в отдельную книгу вставить этот макрос. А можно сделать, чтобы этот макрос открывался в любой книге, по умолчанию?
Serge_007, прикольно! Все работает! Огромное спасибо, хоть так облегчу свою работу. Вот только пока у меня получилось только в отдельную книгу вставить этот макрос. А можно сделать, чтобы этот макрос открывался в любой книге, по умолчанию?yutatya
Serge_007, а можно еще подсказку? В Примере (в этом посте) в последняя строка - строка сумм. Может есть макрос, который эти ячейки с суммами, выделит. Тогда у меня получится: 1) выделяю 2) ctrl+v - копирую 3) ctrl+z - вставляю значения (это я ваш макрос) И красота, без мыши...
Serge_007, а можно еще подсказку? В Примере (в этом посте) в последняя строка - строка сумм. Может есть макрос, который эти ячейки с суммами, выделит. Тогда у меня получится: 1) выделяю 2) ctrl+v - копирую 3) ctrl+z - вставляю значения (это я ваш макрос) И красота, без мыши...yutatya
Лучше не вешать макросы на стандартные сочетания клавиш (ctrl+z - это отмена последнего действия/ий)
Я подумала, что возможно, это какое-то стандартное сочетание. Но мне показалось, что так пальцам как-то удобнее и быстрее. А ctrl+s что-то обозначает? Спасибо вам за ответы. Я вот всегда считала, что макросы писать это круто! Вот только учиться все времени нет...
Цитата (Serge_007)
Лучше не вешать макросы на стандартные сочетания клавиш (ctrl+z - это отмена последнего действия/ий)
Я подумала, что возможно, это какое-то стандартное сочетание. Но мне показалось, что так пальцам как-то удобнее и быстрее. А ctrl+s что-то обозначает? Спасибо вам за ответы. Я вот всегда считала, что макросы писать это круто! Вот только учиться все времени нет...yutatya
Чет не работает... Может я не так опять сформулировала? Ситуация:В строке, где-то в середине, у меня есть несколько ячеек со значениями. Я ставлю курсор на первую такую ячейку и выделяю все ячейки мышью, чтобы их скопировать. можно ли это действие выполнить с помощью активных клавиш, т.е. без использования мыши? Ваш макрос (№2) для этого?
Чет не работает... Может я не так опять сформулировала? Ситуация:В строке, где-то в середине, у меня есть несколько ячеек со значениями. Я ставлю курсор на первую такую ячейку и выделяю все ячейки мышью, чтобы их скопировать. можно ли это действие выполнить с помощью активных клавиш, т.е. без использования мыши? Ваш макрос (№2) для этого?yutatya