powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Снова про макрос VBA (отбор уникальных значений)
11 сообщений из 11, страница 1 из 1
Снова про макрос VBA (отбор уникальных значений)
    #37273061
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо всем, кто помог мне с отбором (см. моё предыдущее сообщение)
Небольшое уточнение - а как суммировать? Вот пример:
А1 А2
Иванов 250
Петров 100
Иванченко 300
Ивин 25
Петров 36
Сидоров 87
... ...
Иванов 100

Как получить

Е1 Е2
Иванов 350
Иванченко 300
Петров 136
и т.д.

С отбором мне понятно, а вот с суммированием...
И еще - можно ли в отборе уникальных записей задать дополнительное условие, допустим выбрать все суммы на И, на П и т.д.

С1 С2
И 675
С 87
Спасибо.
Прошу не ругать за наивные вопросы - буквально вчера началось освоение VBA
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273159
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jimy,
А Вы каким кодом воспользовались ?
ADO или нет?
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273324
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JimyБольшое спасибо всем, кто помог мне с отбором (см. моё предыдущее сообщение)
Небольшое уточнение - а как суммировать? Вот пример:
А1 А2
Иванов 250
Петров 100
Иванченко 300
Ивин 25
Петров 36
Сидоров 87
... ...
Иванов 100

Как получить

Е1 Е2
Иванов 350
Иванченко 300
Петров 136
и т.д.

С отбором мне понятно, а вот с суммированием...
И еще - можно ли в отборе уникальных записей задать дополнительное условие, допустим выбрать все суммы на И, на П и т.д.

С1 С2
И 675
С 87
Спасибо.
Прошу не ругать за наивные вопросы - буквально вчера началось освоение VBA
С Вашими потребностями стоит первую строку сделать названиями столбцов и обращаться к таблице Экселя как к таблице базы данных. Таким образом исчезнет необходимость каждый раз привязываться к номерам столбцов.
ADO & SQL Вам в помощь.
Вот официальная ссылка: Использование ADO с данными Excel из Visual Basic или VBA http://support.microsoft.com/kb/257819
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273377
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну зачем мне ADO ? Неужели нельзя это сделать средствами VBA EXcel?
Если можно, подскажите. Возможно, это будет интересно и другим пользователям.
Спасибо.
А отбор я делал по рецепт, подсказаному мне форумчанами (см. соообщения jimy)
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273393
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JimyНу зачем мне ADO ? Неужели нельзя это сделать средствами VBA EXcel?
Если можно, подскажите. Возможно, это будет интересно и другим пользователям.
Спасибо.
А отбор я делал по рецепт, подсказаному мне форумчанами (см. соообщения jimy)
Сделать можно, Вам могут помочь сводные таблицы. Программно создаете сводную таблицу на основе листа с данными, скидываете ее где-то на промежуточный лист и потом с этого листа в нужном ракурсе на требуемый. Я бы так делал, но может коллеги что-то еще предложат.
ЗЫ Можно еще циклом погонять по листу, агрегируя данные. Так себе решения на десятках тысяч строк. В любом случае, судя по исходным данным, Вы будете кодом получать данные, кот-е возвращаются одной SQL-инструкцией типа
Код: plaintext
SELECT Left(FIO, 1 ), SUM(Volume) As Summa FROM DataRange GROUP BY Left(FIO, 1 )  
FIO - это название столбика с фамилиями, Volume - название столбца с числами, DataRange - название именованного диапазона данных.
ЗЗЫ Сам с интересом бы поглядел другие вар-ты подобных задач, т.к. мне тоже предстоит с зверинцем эксельных листов подобными вещами заниматься.
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273400
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кладовщик,
тогда сейчас наводящий вопрос, а далее ... как пойдёт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Option Explicit

Sub Сортировка()

'сортировка без выделения по столбцу В
'А1: А10 - фамилии
'В1: В10 - числа, находящиеся справа от фамилии
'после сортировки сортируются фамилии, цифры справа от фамилии перемещаются вместе с фамилией

'указываем, что работаем с активным листом
'With ActiveSheet
'указываем, какой именно лист
With Worksheets("Лист1")

Dim Выделенное As Range
Set Выделенное = Range("A1:B23")

Выделенное.Sort Key1:=Range("B1:B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:= 1 , MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With

End Sub

А как сделать по столбцу А????
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273407
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минус агрегирования в циклах, на мой взгляд в том, что нужно постоянно привязываться к номерам столбцов, по кот-м данные агрегируются. Если столбцов несколько десятков, и их порядок может меняться, то каждый раз придется заморачиваться над привязкой номеров столбцов к работающему коду. К примеру, были ваши ФИО в 1-м столбике, а Числа - во 2-м, а стали в 3-м и 5-м соответственно. А бывают портянки в Экселе, на кот-х нужно агрегаты по 20-30 столбцам собирать, к примеру.
-----
Гори в аду, Progress OpenEdge!!!
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273410
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JimyВозможно, это будет интересно и другим пользователям.


Это вряд-ли.
Твою задачу можно решить за минуту посредством сводных таблиц - там и уникальные записи можно получить и суммы и фильтровать результат. При чём бухгалтеру осталось бы научится нажимать Refresh. А Ты уже второй день просиш изобрести велосипед - что мало кому интересно.
Удачи.
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37273427
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял, по левому столбцу
Range("A1:A1")
А дальше уже и не интересно
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37275018
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если данные именно такие, как описано, то вот тут я универсальный код коллеге писал:
http://www.planetaexcel.ru/forum.php?thread_id=26105
Выделяете диапазон, выполняете код из файла http://www.planetaexcel.ru/docs/forum_upload/post_216355.rar
...
Рейтинг: 0 / 0
Снова про макрос VBA (отбор уникальных значений)
    #37275346
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще один вар-т решения вспомнил. С помощью MS Query. Как и в случае со сводными таблицами, можно обойтись без кода.
-----
Гори в аду, Progress OpenEdge!!!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Снова про макрос VBA (отбор уникальных значений)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]