Я знаю, почему не работает. У вас стоит условие ("a1:f10") - это по Примеру, если применять в Примере-все работает. А макросы я эти применяю для сворачивания своих файлов (файл в сообщении 12). Формулу "сумма" я применяю, когда строки у меня уже отсортированы с помощью "фильтра", и поэтому в ячейке у меня записано
Код
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;I2:I5963)
Столбцы не меняются (от I до M), а вот количество строк меняется.
Я знаю, почему не работает. У вас стоит условие ("a1:f10") - это по Примеру, если применять в Примере-все работает. А макросы я эти применяю для сворачивания своих файлов (файл в сообщении 12). Формулу "сумма" я применяю, когда строки у меня уже отсортированы с помощью "фильтра", и поэтому в ячейке у меня записано
Код
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;I2:I5963)
Столбцы не меняются (от I до M), а вот количество строк меняется.yutatya
Сообщение отредактировал yutatya - Среда, 29.05.2013, 12:30
Насколько понял, говоря языком SQL и сводных таблиц, нужна группировка по: дата заключения, Фьючерский контракт,биржевой код, код сделки, цена (стоблцы: C, E, F, G, H). Вычисляемые, соответственно, для одинаковых групповых: суммы по столбцам H, I, G, K, L, M. Что делать с данными остальных столбцов? Выбирать первое или последнее встретившееся значения? Для указанных столбцов группировки они различаются.
Насколько понял, говоря языком SQL и сводных таблиц, нужна группировка по: дата заключения, Фьючерский контракт,биржевой код, код сделки, цена (стоблцы: C, E, F, G, H). Вычисляемые, соответственно, для одинаковых групповых: суммы по столбцам H, I, G, K, L, M. Что делать с данными остальных столбцов? Выбирать первое или последнее встретившееся значения? Для указанных столбцов группировки они различаются.anvg
anvg, не напомните, как правильно в запросе слить уже сгруппированную выборку с данными остальных столбцов? То есть SELECT [6], [7], [8], sum([9]), sum ([10]), ... FROM ... GROUP BY [6], [7], [8] уже есть, а вот затем надо к каждой строке дописать данные остальных полей из любой подходящей (по [6], [7], [8]) записи, то самое "первое попавшееся значение". Апдейтом-то можно было бы, но это же Excel и JET, я там возможности драйвера слабо помню... Если сложно - могу не извращаться (просто залью всё же данные на лист и там обработаю дополнительно), а то я хотел всё разом одним запросом сделать.
yutatya, Serge_007, - вы сильно-то не бейтесь: если всё получится, то скоро выложу примочку для автообработки. По скорости могу сказать одно - вышеприведенный исходник на 9745 записей свёртывает в суммы меньше секунды на старом двухъядернике; как я и думал, больше времени занимает дополнительная обработка и выгрузка обратно
anvg, не напомните, как правильно в запросе слить уже сгруппированную выборку с данными остальных столбцов? То есть SELECT [6], [7], [8], sum([9]), sum ([10]), ... FROM ... GROUP BY [6], [7], [8] уже есть, а вот затем надо к каждой строке дописать данные остальных полей из любой подходящей (по [6], [7], [8]) записи, то самое "первое попавшееся значение". Апдейтом-то можно было бы, но это же Excel и JET, я там возможности драйвера слабо помню... Если сложно - могу не извращаться (просто залью всё же данные на лист и там обработаю дополнительно), а то я хотел всё разом одним запросом сделать.
yutatya, Serge_007, - вы сильно-то не бейтесь: если всё получится, то скоро выложу примочку для автообработки. По скорости могу сказать одно - вышеприведенный исходник на 9745 записей свёртывает в суммы меньше секунды на старом двухъядернике; как я и думал, больше времени занимает дополнительная обработка и выгрузка обратно AndreTM
AndreTM Для первого встретившегося First(ИмяПоля) Для последнего Last(ИмяПоля) Строка подключения для Jet "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\path\book.xls;Extended Properties=""Excel 8.0;HDR=YES"";" для ACE Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\path\book.xlsx;Extended Properties=""Excel 12.0;HDR=YES"";" Спасёте человека. Кто сказал, что в стране не растёт производительность труда с 2-3 дней до 1,5 секунды yutatya А как же утверждение?
Цитата
Поэтому сворачивать нужно внутри дня.
AndreTM Для первого встретившегося First(ИмяПоля) Для последнего Last(ИмяПоля) Строка подключения для Jet "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\path\book.xls;Extended Properties=""Excel 8.0;HDR=YES"";" для ACE Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\path\book.xlsx;Extended Properties=""Excel 12.0;HDR=YES"";" Спасёте человека. Кто сказал, что в стране не растёт производительность труда с 2-3 дней до 1,5 секунды yutatya А как же утверждение?
В общем, есть какая-то бяка. И у Матрены, и у AndreTM. Файл получается быстро и без ошибок. Но в нашу программу не подкачивается. Может это быть из-за того, что файл в Excel? В формате csv его можно получить? Программа пишет ошибку "Импортер ориентирован только на место сделки, которое Брокер кодирует <FORTS>(ртс), что отличается от имеющегося в " У меня такое ощущение, что в столбце B программа не видет запись "FORTS". Такое может быть?
В общем, есть какая-то бяка. И у Матрены, и у AndreTM. Файл получается быстро и без ошибок. Но в нашу программу не подкачивается. Может это быть из-за того, что файл в Excel? В формате csv его можно получить? Программа пишет ошибку "Импортер ориентирован только на место сделки, которое Брокер кодирует <FORTS>(ртс), что отличается от имеющегося в " У меня такое ощущение, что в столбце B программа не видет запись "FORTS". Такое может быть?yutatya
Сообщение отредактировал yutatya - Среда, 29.05.2013, 17:02
:D Естественнно, XLS-файл не подойдёт. Вот только нигде ранее я не видел, чтобы вам нужно было ещё и экспортировать для последующей обработки... Вы раньше-то как передавали сделанное?
А, кажется понял. Исправил кое-что - скачайте заново. Ну и, в принципе, если всё же не пойдёт - недолго сделать экспорт в CSV (я там даже модуль уже предусмотрел заранее ) ... Забирайте - уже экпортирует в CSV. ... Ага, не хотел нормально экспортировать строчки длиннее 255 символов... Ладно, это тоже поправили. Теперь всё около дела.
:D Естественнно, XLS-файл не подойдёт. Вот только нигде ранее я не видел, чтобы вам нужно было ещё и экспортировать для последующей обработки... Вы раньше-то как передавали сделанное?
А, кажется понял. Исправил кое-что - скачайте заново. Ну и, в принципе, если всё же не пойдёт - недолго сделать экспорт в CSV (я там даже модуль уже предусмотрел заранее ) ... Забирайте - уже экпортирует в CSV. ... Ага, не хотел нормально экспортировать строчки длиннее 255 символов... Ладно, это тоже поправили. Теперь всё около дела.AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Среда, 29.05.2013, 18:32
yutatya! Ваша прога, очевидно, импорт осуществляет из формата CSV. Поскольку, без сомнения, Вы будете работать с макросом AndreTM, то я свой просто ликвидирую за ненадобностью, не дополняя экспортом в CSV.
yutatya! Ваша прога, очевидно, импорт осуществляет из формата CSV. Поскольку, без сомнения, Вы будете работать с макросом AndreTM, то я свой просто ликвидирую за ненадобностью, не дополняя экспортом в CSV. Матрёна
Сообщение отредактировал Матрёна - Среда, 29.05.2013, 17:28
А раньше, я открывала файл csv, в нем все сортировала и сохраняла. А вот попробовала из вашего файла xls тупо скопировать столбцы D-M, и вставить в первоначальный файл, а лишние строки удалить. И все номально. Если ничего другого не получится и на том спасибо, все равно получается быстрее в надцать-раз.
Не все равно не работает.
Цитата (AndreTM)
Вы раньше-то как передавали сделанное?
А раньше, я открывала файл csv, в нем все сортировала и сохраняла. А вот попробовала из вашего файла xls тупо скопировать столбцы D-M, и вставить в первоначальный файл, а лишние строки удалить. И все номально. Если ничего другого не получится и на том спасибо, все равно получается быстрее в надцать-раз.yutatya
Ещё вариант. Поскольку есть проблемы с записанным сразу результатом в csv, оставил импорт и анализ на лист Excel. Экспортировать придётся по старинке, если этот вариант подойдёт. Не всё просто получается с интерпретацией у Jet, поэтому в архиве 2 файла, они должны лежать в одной папке. Попробуйте. Да и не всё понятно с полем "Брокерская комиссия. вкл. НДС" у вас на листе "готовый" и в примере csv с точкой, а на листе "исходный" без точки. Как всё-таки правильно?
Ещё вариант. Поскольку есть проблемы с записанным сразу результатом в csv, оставил импорт и анализ на лист Excel. Экспортировать придётся по старинке, если этот вариант подойдёт. Не всё просто получается с интерпретацией у Jet, поэтому в архиве 2 файла, они должны лежать в одной папке. Попробуйте. Да и не всё понятно с полем "Брокерская комиссия. вкл. НДС" у вас на листе "готовый" и в примере csv с точкой, а на листе "исходный" без точки. Как всё-таки правильно?anvg
anvg, я в своём примере эти проблемы решил. То есть импорт-свёртка проходит на ура, можно при желании и несколько разных видов запросов сделать. Только вот да, пришлось всё же выгружать данные из рекордсета на лист и дополнительно обрабатывать, эту точку в имени поля в рекордсете никак не сделать. Ну и экспорт в CSV - у меня был уже готовый модуль, так что не пришлось ничего придумывать - забрал данные на лист-обработал-выгрузил.
P.S. Что-то мы Татьяну после моего окончательного варианта и не слышим - наверное, всему офису хвасталась долго, затем закрыла месяц, получила свои законные сэкономленные дни - и отдыхает до понедельника
anvg, я в своём примере эти проблемы решил. То есть импорт-свёртка проходит на ура, можно при желании и несколько разных видов запросов сделать. Только вот да, пришлось всё же выгружать данные из рекордсета на лист и дополнительно обрабатывать, эту точку в имени поля в рекордсете никак не сделать. Ну и экспорт в CSV - у меня был уже готовый модуль, так что не пришлось ничего придумывать - забрал данные на лист-обработал-выгрузил.
P.S. Что-то мы Татьяну после моего окончательного варианта и не слышим - наверное, всему офису хвасталась долго, затем закрыла месяц, получила свои законные сэкономленные дни - и отдыхает до понедельника AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Четверг, 30.05.2013, 14:27
AndreTM! Мне кажется, проблема импорта результатов "из-под" макросов в прогу Татьяны "зарыта" в следующем: она предоставила файл не CSV, а файл CSV "из-под" EXCEL.
AndreTM! Мне кажется, проблема импорта результатов "из-под" макросов в прогу Татьяны "зарыта" в следующем: она предоставила файл не CSV, а файл CSV "из-под" EXCEL.Матрёна
Матрёна, я в своём варианте всё исправил; да у меня и экспорт в CSV был изначально самописным (кроме записи в файл уже сформированного), а теперь - вообще не даёт простора Excel'ю даже на этапе записи текстовых строк что-либо испортить. Да, и изначальный вариант с исходником CSV - был предоставлен...
Матрёна, я в своём варианте всё исправил; да у меня и экспорт в CSV был изначально самописным (кроме записи в файл уже сформированного), а теперь - вообще не даёт простора Excel'ю даже на этапе записи текстовых строк что-либо испортить. Да, и изначальный вариант с исходником CSV - был предоставлен...AndreTM