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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет суммы по каждому уникальному значению в 1-ой колонке - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет суммы по каждому уникальному значению в 1-ой колонке (Макросы/Sub)
Подсчет суммы по каждому уникальному значению в 1-ой колонке
ant6729 Дата: Воскресенье, 30.04.2017, 01:29 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 304
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Доброй ночи!
В приложенном файле по каждому последнему уникальному (они условно отфильтрованы последовательно) значению в первой колонке хочу получить value по сумме из второй колонки в Msgbox

Помогите, пожалуйста, продвинуться
Застыл на этом...
[vba]
Код

Sub count()
For x = 2 To lr
lr = Cells(Rows.Count, 1).End(xlUp).Row
If Cells(x, 1) = lr.Value Then ' тщетная попытка найти последнее значение... если бы
counter = counter + Cells(x, 2)
End If
Next x
MsgBox counter
End Sub
[/vba]
К сообщению приложен файл: 6127551.xlsx(10Kb)


Сообщение отредактировал ant6729 - Воскресенье, 30.04.2017, 13:13
 
Ответить
СообщениеДоброй ночи!
В приложенном файле по каждому последнему уникальному (они условно отфильтрованы последовательно) значению в первой колонке хочу получить value по сумме из второй колонки в Msgbox

Помогите, пожалуйста, продвинуться
Застыл на этом...
[vba]
Код

Sub count()
For x = 2 To lr
lr = Cells(Rows.Count, 1).End(xlUp).Row
If Cells(x, 1) = lr.Value Then ' тщетная попытка найти последнее значение... если бы
counter = counter + Cells(x, 2)
End If
Next x
MsgBox counter
End Sub
[/vba]

Автор - ant6729
Дата добавления - 30.04.2017 в 01:29
vikttur Дата: Воскресенье, 30.04.2017, 01:32 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2313
Репутация: 401 ±
Замечаний: 0% ±

по каждому последнему уникальному
Расшифруйте
Цитата
в первой колонке хочу получить value по сумме из второй колонки в Msgbox

Тоже непонятно: при чем здесь Msgbox?

В файле 4 столбца данных, на втором листе имена... Расшитение .xlsx, где макросы не живут... Вы тот файл показали?
Если да, зачем запутывать людей лишними данными?


Сообщение отредактировал vikttur - Воскресенье, 30.04.2017, 01:39
 
Ответить
Сообщение
по каждому последнему уникальному
Расшифруйте
Цитата
в первой колонке хочу получить value по сумме из второй колонки в Msgbox

Тоже непонятно: при чем здесь Msgbox?

В файле 4 столбца данных, на втором листе имена... Расшитение .xlsx, где макросы не живут... Вы тот файл показали?
Если да, зачем запутывать людей лишними данными?

Автор - vikttur
Дата добавления - 30.04.2017 в 01:32
ant6729 Дата: Воскресенье, 30.04.2017, 02:23 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 304
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
12
12
12
23
21

MsgBox по первому значению (в нашем случае 1) сумма = 6
MsgBox по второму значению (в нашем случае 2) сумма = 4

MsgBox мне нужно, чтобы дальше использовать value по каждому из значений в дальнейшем коде, для понимания, ...я с этими значениями еще буду дальше думать и мне так удобнее понимать код. Вокенбах советует...

Код я скинул, чтобы показать, где я остановился, возможно, чтобы показать, что я хочу получить, но получить не удалось...
Прилагаю файл без лишних колонок и листа.
К сообщению приложен файл: 2886166.xlsx(9Kb)
 
Ответить
Сообщение12
12
12
23
21

MsgBox по первому значению (в нашем случае 1) сумма = 6
MsgBox по второму значению (в нашем случае 2) сумма = 4

MsgBox мне нужно, чтобы дальше использовать value по каждому из значений в дальнейшем коде, для понимания, ...я с этими значениями еще буду дальше думать и мне так удобнее понимать код. Вокенбах советует...

Код я скинул, чтобы показать, где я остановился, возможно, чтобы показать, что я хочу получить, но получить не удалось...
Прилагаю файл без лишних колонок и листа.

Автор - ant6729
Дата добавления - 30.04.2017 в 02:23
AndreTM Дата: Воскресенье, 30.04.2017, 06:42 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1664
Репутация: 481 ±
Замечаний: 0% ±

2003 & 2010
Насколько я понял, там нужно просто просуммировать второй столбец по группам, заданным в первом.
Если бы это была формула, то что-то вроде протягиваемой
Код
=СУММЕСЛИ($A$2:$A$37;$A2;$B$2:$B$37)
(ну или массивной "суммировать по уникальным", если отбирать в отдельную ячейку и массивом; а можно вообще взять и в сводной посчитать :) )

Но поскольку тут кодом, да ещё и "ключи условно последовательно", да ещё и неизвестны пределы для ключей, да ещё и "эти суммы потребуются дальше в коде", то на скорую руку приходит такое решение (код придется помещать в общий модуль):
aSums останется заполненным для последующего использования. MsgBox можно было бы выдавать и для каждого ключа отдельно, но ведь всё равно надо сначала просчитать весь диапазон (помним - условно отсортированы), так что можно его и разом выдать в конце.
Можно было, конечно, и коллекцию или словарь предложить в качестве хранилища результатов, но ТС, похоже, и так в процессе обучения пока находится.

P.S. Тема должна быть в "Вопросах по VBA", не?
К сообщению приложен файл: 2-33557-1-1.xlsm(25Kb)


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


Сообщение отредактировал AndreTM - Воскресенье, 30.04.2017, 07:01
 
Ответить
СообщениеНасколько я понял, там нужно просто просуммировать второй столбец по группам, заданным в первом.
Если бы это была формула, то что-то вроде протягиваемой
Код
=СУММЕСЛИ($A$2:$A$37;$A2;$B$2:$B$37)
(ну или массивной "суммировать по уникальным", если отбирать в отдельную ячейку и массивом; а можно вообще взять и в сводной посчитать :) )

Но поскольку тут кодом, да ещё и "ключи условно последовательно", да ещё и неизвестны пределы для ключей, да ещё и "эти суммы потребуются дальше в коде", то на скорую руку приходит такое решение (код придется помещать в общий модуль):
aSums останется заполненным для последующего использования. MsgBox можно было бы выдавать и для каждого ключа отдельно, но ведь всё равно надо сначала просчитать весь диапазон (помним - условно отсортированы), так что можно его и разом выдать в конце.
Можно было, конечно, и коллекцию или словарь предложить в качестве хранилища результатов, но ТС, похоже, и так в процессе обучения пока находится.

P.S. Тема должна быть в "Вопросах по VBA", не?

Автор - AndreTM
Дата добавления - 30.04.2017 в 06:42
ant6729 Дата: Воскресенье, 30.04.2017, 13:15 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 304
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Да, можно было по разному сделать, но нужна была переменная в коде, с которой можно было дальше действовать
AndreTM, Спасибо!
 
Ответить
СообщениеДа, можно было по разному сделать, но нужна была переменная в коде, с которой можно было дальше действовать
AndreTM, Спасибо!

Автор - ant6729
Дата добавления - 30.04.2017 в 13:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет суммы по каждому уникальному значению в 1-ой колонке (Макросы/Sub)
Страница 1 из 11
Поиск:

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