Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сводная таблица, "сцепить" или макрос - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сводная таблица, "сцепить" или макрос (Есть реестр, нужно просортировать и уменьшить кол-во строк)
Сводная таблица, "сцепить" или макрос
Serge_007 Дата: Среда, 29.05.2013, 11:58 | Сообщение № 21
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (yutatya)
Ваш макрос (№2) для этого?
Нет. Он по Вашей просьбе
Цитата (yutatya)
макрос, который эти ячейки с суммами, выделит
выделяет ячейки с суммами, а не копирует их

Если необходимо не выделять, а копировать, то замените выделение Interior.Color = 65535 на копирование Copy

[vba]
Код
Sub CopyFormulas()
       Range("a1:f10").SpecialCells(xlCellTypeFormulas, 23).Copy
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (yutatya)
Ваш макрос (№2) для этого?
Нет. Он по Вашей просьбе
Цитата (yutatya)
макрос, который эти ячейки с суммами, выделит
выделяет ячейки с суммами, а не копирует их

Если необходимо не выделять, а копировать, то замените выделение Interior.Color = 65535 на копирование Copy

[vba]
Код
Sub CopyFormulas()
       Range("a1:f10").SpecialCells(xlCellTypeFormulas, 23).Copy
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 29.05.2013 в 11:58
yutatya Дата: Среда, 29.05.2013, 12:24 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Я знаю, почему не работает. У вас стоит условие ("a1:f10") - это по Примеру, если применять в Примере-все работает. А макросы я эти применяю для сворачивания своих файлов (файл в сообщении 12). Формулу "сумма" я применяю, когда строки у меня уже отсортированы с помощью "фильтра", и поэтому в ячейке у меня записано
Код
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;I2:I5963)
Столбцы не меняются (от I до M), а вот количество строк меняется.


Сообщение отредактировал yutatya - Среда, 29.05.2013, 12:30
 
Ответить
СообщениеЯ знаю, почему не работает. У вас стоит условие ("a1:f10") - это по Примеру, если применять в Примере-все работает. А макросы я эти применяю для сворачивания своих файлов (файл в сообщении 12). Формулу "сумма" я применяю, когда строки у меня уже отсортированы с помощью "фильтра", и поэтому в ячейке у меня записано
Код
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;I2:I5963)
Столбцы не меняются (от I до M), а вот количество строк меняется.

Автор - yutatya
Дата добавления - 29.05.2013 в 12:24
anvg Дата: Среда, 29.05.2013, 12:57 | Сообщение № 23
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Насколько понял, говоря языком 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
Дата добавления - 29.05.2013 в 12:57
yutatya Дата: Среда, 29.05.2013, 13:08 | Сообщение № 24
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

ctrl+z пришлось вернуть к стандартным настройкам, т.к. пропала возможность отмены последнего действия. Сделала, как вы изначально советовали.
 
Ответить
Сообщениеctrl+z пришлось вернуть к стандартным настройкам, т.к. пропала возможность отмены последнего действия. Сделала, как вы изначально советовали.

Автор - yutatya
Дата добавления - 29.05.2013 в 13:08
yutatya Дата: Среда, 29.05.2013, 13:12 | Сообщение № 25
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

anvg, по дате заключения группировать не нужно.
Цитата (anvg)
Что делать с данными остальных столбцов? Выбирать первое или последнее встретившееся значения?
Не важно, можно выбрать первое встретившееся значение.
 
Ответить
Сообщениеanvg, по дате заключения группировать не нужно.
Цитата (anvg)
Что делать с данными остальных столбцов? Выбирать первое или последнее встретившееся значения?
Не важно, можно выбрать первое встретившееся значение.

Автор - yutatya
Дата добавления - 29.05.2013 в 13:12
AndreTM Дата: Среда, 29.05.2013, 13:28 | Сообщение № 26
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
anvg, не напомните, как правильно в запросе слить уже сгруппированную выборку с данными остальных столбцов?
То есть SELECT [6], [7], [8], sum([9]), sum ([10]), ... FROM ... GROUP BY [6], [7], [8] уже есть, а вот затем надо к каждой строке дописать данные остальных полей из любой подходящей (по [6], [7], [8]) записи, то самое "первое попавшееся значение". Апдейтом-то можно было бы, но это же Excel и JET, я там возможности драйвера слабо помню...
Если сложно - могу не извращаться (просто залью всё же данные на лист и там обработаю дополнительно), а то я хотел всё разом одним запросом сделать.

yutatya, Serge_007, - вы сильно-то не бейтесь: если всё получится, то скоро выложу примочку для автообработки.
По скорости могу сказать одно - вышеприведенный исходник на 9745 записей свёртывает в суммы меньше секунды на старом двухъядернике; как я и думал, больше времени занимает дополнительная обработка и выгрузка обратно biggrin


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщениеanvg, не напомните, как правильно в запросе слить уже сгруппированную выборку с данными остальных столбцов?
То есть SELECT [6], [7], [8], sum([9]), sum ([10]), ... FROM ... GROUP BY [6], [7], [8] уже есть, а вот затем надо к каждой строке дописать данные остальных полей из любой подходящей (по [6], [7], [8]) записи, то самое "первое попавшееся значение". Апдейтом-то можно было бы, но это же Excel и JET, я там возможности драйвера слабо помню...
Если сложно - могу не извращаться (просто залью всё же данные на лист и там обработаю дополнительно), а то я хотел всё разом одним запросом сделать.

yutatya, Serge_007, - вы сильно-то не бейтесь: если всё получится, то скоро выложу примочку для автообработки.
По скорости могу сказать одно - вышеприведенный исходник на 9745 записей свёртывает в суммы меньше секунды на старом двухъядернике; как я и думал, больше времени занимает дополнительная обработка и выгрузка обратно biggrin

Автор - AndreTM
Дата добавления - 29.05.2013 в 13:28
anvg Дата: Среда, 29.05.2013, 13:55 | Сообщение № 27
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
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 секунды biggrin
yutatya
А как же утверждение?
Цитата
Поэтому сворачивать нужно внутри дня.


Сообщение отредактировал anvg - Среда, 29.05.2013, 14:02
 
Ответить
Сообщение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 секунды biggrin
yutatya
А как же утверждение?
Цитата
Поэтому сворачивать нужно внутри дня.

Автор - anvg
Дата добавления - 29.05.2013 в 13:55
yutatya Дата: Среда, 29.05.2013, 14:05 | Сообщение № 28
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Ну, это моя оговорка. У нас считается торговым днем период с Т-1 с 19-00-01 по Т 18-59-59. Извините плиз.
Цитата (AndreTM)
yutatya, Serge_007, - вы сильно-то не бейтесь
А что, мне прикольно! Я столько нового узнала!
Да уж, спасите человека!
 
Ответить
СообщениеНу, это моя оговорка. У нас считается торговым днем период с Т-1 с 19-00-01 по Т 18-59-59. Извините плиз.
Цитата (AndreTM)
yutatya, Serge_007, - вы сильно-то не бейтесь
А что, мне прикольно! Я столько нового узнала!
Да уж, спасите человека!

Автор - yutatya
Дата добавления - 29.05.2013 в 14:05
Матрёна Дата: Среда, 29.05.2013, 14:14 | Сообщение № 29
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

EDIT


Сообщение отредактировал Матрёна - Среда, 29.05.2013, 16:21
 
Ответить
СообщениеEDIT

Автор - Матрёна
Дата добавления - 29.05.2013 в 14:14
yutatya Дата: Среда, 29.05.2013, 14:22 | Сообщение № 30
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Матрёна, ну давайте попробуем. До конца рабочего дня еще далеко, может я еще и месяц "закрою" сегодня.
 
Ответить
СообщениеМатрёна, ну давайте попробуем. До конца рабочего дня еще далеко, может я еще и месяц "закрою" сегодня.

Автор - yutatya
Дата добавления - 29.05.2013 в 14:22
Матрёна Дата: Среда, 29.05.2013, 14:31 | Сообщение № 31
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

EDIT


Сообщение отредактировал Матрёна - Среда, 29.05.2013, 16:20
 
Ответить
СообщениеEDIT

Автор - Матрёна
Дата добавления - 29.05.2013 в 14:31
AndreTM Дата: Среда, 29.05.2013, 16:41 | Сообщение № 32
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
yutatya, ну, ловите biggrin
К сообщению приложен файл: 0064668.xls (88.5 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Среда, 29.05.2013, 18:54
 
Ответить
Сообщениеyutatya, ну, ловите biggrin

Автор - AndreTM
Дата добавления - 29.05.2013 в 16:41
yutatya Дата: Среда, 29.05.2013, 16:59 | Сообщение № 33
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

В общем, есть какая-то бяка.
И у Матрены, и у AndreTM.
Файл получается быстро и без ошибок. Но в нашу программу не подкачивается. Может это быть из-за того, что файл в Excel? В формате csv его можно получить? Программа пишет ошибку "Импортер ориентирован только на место сделки, которое Брокер кодирует <FORTS>(ртс), что отличается от имеющегося в "
У меня такое ощущение, что в столбце B программа не видет запись "FORTS". Такое может быть?


Сообщение отредактировал yutatya - Среда, 29.05.2013, 17:02
 
Ответить
СообщениеВ общем, есть какая-то бяка.
И у Матрены, и у AndreTM.
Файл получается быстро и без ошибок. Но в нашу программу не подкачивается. Может это быть из-за того, что файл в Excel? В формате csv его можно получить? Программа пишет ошибку "Импортер ориентирован только на место сделки, которое Брокер кодирует <FORTS>(ртс), что отличается от имеющегося в "
У меня такое ощущение, что в столбце B программа не видет запись "FORTS". Такое может быть?

Автор - yutatya
Дата добавления - 29.05.2013 в 16:59
AndreTM Дата: Среда, 29.05.2013, 17:05 | Сообщение № 34
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
biggrin :D
Естественнно, XLS-файл не подойдёт.
Вот только нигде ранее я не видел, чтобы вам нужно было ещё и экспортировать для последующей обработки...
Вы раньше-то как передавали сделанное?

А, кажется понял. Исправил кое-что - скачайте заново.
Ну и, в принципе, если всё же не пойдёт - недолго сделать экспорт в CSV (я там даже модуль уже предусмотрел заранее smile )
...
Забирайте - уже экпортирует в CSV.
...
Ага, не хотел нормально экспортировать строчки длиннее 255 символов... Ладно, это тоже поправили. Теперь всё около дела.


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Среда, 29.05.2013, 18:32
 
Ответить
Сообщениеbiggrin :D
Естественнно, XLS-файл не подойдёт.
Вот только нигде ранее я не видел, чтобы вам нужно было ещё и экспортировать для последующей обработки...
Вы раньше-то как передавали сделанное?

А, кажется понял. Исправил кое-что - скачайте заново.
Ну и, в принципе, если всё же не пойдёт - недолго сделать экспорт в CSV (я там даже модуль уже предусмотрел заранее smile )
...
Забирайте - уже экпортирует в CSV.
...
Ага, не хотел нормально экспортировать строчки длиннее 255 символов... Ладно, это тоже поправили. Теперь всё около дела.

Автор - AndreTM
Дата добавления - 29.05.2013 в 17:05
Матрёна Дата: Среда, 29.05.2013, 17:17 | Сообщение № 35
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

yutatya!
Ваша прога, очевидно, импорт осуществляет из формата CSV.
Поскольку, без сомнения, Вы будете работать с макросом AndreTM, то я свой просто ликвидирую за ненадобностью, не дополняя экспортом в CSV. biggrin


Сообщение отредактировал Матрёна - Среда, 29.05.2013, 17:28
 
Ответить
Сообщениеyutatya!
Ваша прога, очевидно, импорт осуществляет из формата CSV.
Поскольку, без сомнения, Вы будете работать с макросом AndreTM, то я свой просто ликвидирую за ненадобностью, не дополняя экспортом в CSV. biggrin

Автор - Матрёна
Дата добавления - 29.05.2013 в 17:17
yutatya Дата: Среда, 29.05.2013, 17:53 | Сообщение № 36
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Не все равно не работает.
Цитата (AndreTM)
Вы раньше-то как передавали сделанное?
А раньше, я открывала файл csv, в нем все сортировала и сохраняла.
А вот попробовала из вашего файла xls тупо скопировать столбцы D-M, и вставить в первоначальный файл, а лишние строки удалить. И все номально. Если ничего другого не получится и на том спасибо, все равно получается быстрее в надцать-раз.
 
Ответить
СообщениеНе все равно не работает.
Цитата (AndreTM)
Вы раньше-то как передавали сделанное?
А раньше, я открывала файл csv, в нем все сортировала и сохраняла.
А вот попробовала из вашего файла xls тупо скопировать столбцы D-M, и вставить в первоначальный файл, а лишние строки удалить. И все номально. Если ничего другого не получится и на том спасибо, все равно получается быстрее в надцать-раз.

Автор - yutatya
Дата добавления - 29.05.2013 в 17:53
anvg Дата: Четверг, 30.05.2013, 09:52 | Сообщение № 37
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Ещё вариант. Поскольку есть проблемы с записанным сразу результатом в csv, оставил импорт и анализ на лист Excel. Экспортировать придётся по старинке, если этот вариант подойдёт. Не всё просто получается с интерпретацией у Jet, поэтому в архиве 2 файла, они должны лежать в одной папке. Попробуйте.
Да и не всё понятно с полем "Брокерская комиссия. вкл. НДС" у вас на листе "готовый" и в примере csv с точкой, а на листе "исходный" без точки. Как всё-таки правильно?
К сообщению приложен файл: helpgroup.zip (14.9 Kb)
 
Ответить
СообщениеЕщё вариант. Поскольку есть проблемы с записанным сразу результатом в csv, оставил импорт и анализ на лист Excel. Экспортировать придётся по старинке, если этот вариант подойдёт. Не всё просто получается с интерпретацией у Jet, поэтому в архиве 2 файла, они должны лежать в одной папке. Попробуйте.
Да и не всё понятно с полем "Брокерская комиссия. вкл. НДС" у вас на листе "готовый" и в примере csv с точкой, а на листе "исходный" без точки. Как всё-таки правильно?

Автор - anvg
Дата добавления - 30.05.2013 в 09:52
AndreTM Дата: Четверг, 30.05.2013, 14:25 | Сообщение № 38
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
anvg, я в своём примере эти проблемы решил. smile
То есть импорт-свёртка проходит на ура, можно при желании и несколько разных видов запросов сделать. Только вот да, пришлось всё же выгружать данные из рекордсета на лист и дополнительно обрабатывать, эту точку в имени поля в рекордсете никак не сделать. Ну и экспорт в CSV - у меня был уже готовый модуль, так что не пришлось ничего придумывать - забрал данные на лист-обработал-выгрузил.

P.S. Что-то мы Татьяну после моего окончательного варианта и не слышим - наверное, всему офису хвасталась долго, затем закрыла месяц, получила свои законные сэкономленные дни - и отдыхает до понедельника biggrin


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 30.05.2013, 14:27
 
Ответить
Сообщениеanvg, я в своём примере эти проблемы решил. smile
То есть импорт-свёртка проходит на ура, можно при желании и несколько разных видов запросов сделать. Только вот да, пришлось всё же выгружать данные из рекордсета на лист и дополнительно обрабатывать, эту точку в имени поля в рекордсете никак не сделать. Ну и экспорт в CSV - у меня был уже готовый модуль, так что не пришлось ничего придумывать - забрал данные на лист-обработал-выгрузил.

P.S. Что-то мы Татьяну после моего окончательного варианта и не слышим - наверное, всему офису хвасталась долго, затем закрыла месяц, получила свои законные сэкономленные дни - и отдыхает до понедельника biggrin

Автор - AndreTM
Дата добавления - 30.05.2013 в 14:25
Матрёна Дата: Четверг, 30.05.2013, 14:26 | Сообщение № 39
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

AndreTM!
Мне кажется, проблема импорта результатов "из-под" макросов в прогу Татьяны "зарыта" в следующем: она предоставила файл не CSV, а файл CSV "из-под" EXCEL.
 
Ответить
СообщениеAndreTM!
Мне кажется, проблема импорта результатов "из-под" макросов в прогу Татьяны "зарыта" в следующем: она предоставила файл не CSV, а файл CSV "из-под" EXCEL.

Автор - Матрёна
Дата добавления - 30.05.2013 в 14:26
AndreTM Дата: Четверг, 30.05.2013, 14:35 | Сообщение № 40
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Матрёна, я в своём варианте всё исправил; да у меня и экспорт в CSV был изначально самописным (кроме записи в файл уже сформированного), а теперь - вообще не даёт простора Excel'ю даже на этапе записи текстовых строк что-либо испортить.
Да, и изначальный вариант с исходником CSV - был предоставлен...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеМатрёна, я в своём варианте всё исправил; да у меня и экспорт в CSV был изначально самописным (кроме записи в файл уже сформированного), а теперь - вообще не даёт простора Excel'ю даже на этапе записи текстовых строк что-либо испортить.
Да, и изначальный вариант с исходником CSV - был предоставлен...

Автор - AndreTM
Дата добавления - 30.05.2013 в 14:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сводная таблица, "сцепить" или макрос (Есть реестр, нужно просортировать и уменьшить кол-во строк)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!