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

Вход

Регистрация

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

 

= Мир MS Excel/Суммирование по уникальному значению в третьей колонке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Суммирование по уникальному значению в третьей колонке (Макросы/Sub)
Суммирование по уникальному значению в третьей колонке
ant6729 Дата: Среда, 19.04.2017, 20:20 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Всем еще раз добрый вечер!

При срабатывании кода, запятая ставится в конце списка в ячейке.

[vba]
Код
Sub www()
Dim s&, i&, n
s = 2
n = Cells(2, "C")
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr
    If Cells(i, "C") = n Then
    Cells(s, "H") = Cells(i, "A")
    Cells(s, "I") = Cells(s, "I") & Cells(i, "B") & ", "
    Cells(s, "J") = Cells(i, "C")
    Cells(s, "K") = Cells(s, "K") + Cells(i, "D")
    Cells(s, "L") = Cells(s, "L") + Cells(i, "E")
    Cells(s, "M") = Cells(s, "M") + Cells(i, "F")
    Else
    n = Cells(i, "C")
    s = s + 1
    i = i - 1
    End If
Next
Range("A:G").Delete Shift:=xlToLeft
End Sub
[/vba]
Как этого избежать?
К сообщению приложен файл: 4666307.xlsx (11.7 Kb)


Сообщение отредактировал ant6729 - Четверг, 20.04.2017, 01:22
 
Ответить
СообщениеВсем еще раз добрый вечер!

При срабатывании кода, запятая ставится в конце списка в ячейке.

[vba]
Код
Sub www()
Dim s&, i&, n
s = 2
n = Cells(2, "C")
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr
    If Cells(i, "C") = n Then
    Cells(s, "H") = Cells(i, "A")
    Cells(s, "I") = Cells(s, "I") & Cells(i, "B") & ", "
    Cells(s, "J") = Cells(i, "C")
    Cells(s, "K") = Cells(s, "K") + Cells(i, "D")
    Cells(s, "L") = Cells(s, "L") + Cells(i, "E")
    Cells(s, "M") = Cells(s, "M") + Cells(i, "F")
    Else
    n = Cells(i, "C")
    s = s + 1
    i = i - 1
    End If
Next
Range("A:G").Delete Shift:=xlToLeft
End Sub
[/vba]
Как этого избежать?

Автор - ant6729
Дата добавления - 19.04.2017 в 20:20
RAN Дата: Среда, 19.04.2017, 20:30 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
x = Cells(s, "I") & Cells(i, "B") & ", "
Cells(s, "I") = Left$(x , len(x) - 2)
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 19.04.2017, 22:27
 
Ответить
Сообщение[vba]
Код
x = Cells(s, "I") & Cells(i, "B") & ", "
Cells(s, "I") = Left$(x , len(x) - 2)
[/vba]

Автор - RAN
Дата добавления - 19.04.2017 в 20:30
ant6729 Дата: Среда, 19.04.2017, 21:36 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Не ясно, как использовать ответ...) куда вставить код


Сообщение отредактировал ant6729 - Среда, 19.04.2017, 22:18
 
Ответить
СообщениеНе ясно, как использовать ответ...) куда вставить код

Автор - ant6729
Дата добавления - 19.04.2017 в 21:36
Wasilich Дата: Среда, 19.04.2017, 23:10 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
ставит запятую после одного уникального значения
К сообщению приложен файл: ant6729.xls (51.5 Kb)
 
Ответить
Сообщение
ставит запятую после одного уникального значения

Автор - Wasilich
Дата добавления - 19.04.2017 в 23:10
ant6729 Дата: Среда, 19.04.2017, 23:19 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Мда... Спасибо, Wasilich
 
Ответить
СообщениеМда... Спасибо, Wasilich

Автор - ant6729
Дата добавления - 19.04.2017 в 23:19
ant6729 Дата: Четверг, 20.04.2017, 01:21 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Пробую использовать с текстом.
Догадываюсь, что переменные, возможно, нужно обозначать, как текстовые, обозначал, но не уверен, что делаю то, что нужно.
[vba]
Код
Sub qqqr()
  Dim s&, i&, n
  Dim A&, B$, C&, D#, E#, F#
  s = 2
  n = Cells(2, "C")
  ps = Range("A" & Rows.Count).End(xlUp).Row + 1
  Application.ScreenUpdating = False
  For i = 2 To ps
    If Cells(i, "C") <> n Then
      Cells(s, "A") = A
      Cells(s, "C") = C
      Cells(s, "D") = D
      Cells(s, "E") = E
      Cells(s, "F") = F
      B = Left$(B, Len(B) - 2)
      If Len(B) > Columns("B:B").ColumnWidth Then Columns("B:B").ColumnWidth = Len(B) - 3
      Cells(s, "B") = B
      A = 0: B = "": C = 0: D = 0: E = 0: F = 0
      n = Cells(i, "C")
      s = s + 1
      i = i - 1
    Else
      A = Cells(i, "A")
      B = B & Cells(i, "B") & ", "
      C = Cells(i, "C")
      D = Cells(i, "D")
      E = Cells(i, "E")
      F = F + Cells(i, "F")
    End If
  Next
  Range(Cells(s, "A"), Cells(ps, "F")).ClearContents
  Application.ScreenUpdating = True
End Sub
[/vba]
Как воспроизвести ту же логику, только с текстовыми значениями?
К сообщению приложен файл: 3433365.xlsx (8.3 Kb)


Сообщение отредактировал ant6729 - Четверг, 20.04.2017, 01:45
 
Ответить
СообщениеПробую использовать с текстом.
Догадываюсь, что переменные, возможно, нужно обозначать, как текстовые, обозначал, но не уверен, что делаю то, что нужно.
[vba]
Код
Sub qqqr()
  Dim s&, i&, n
  Dim A&, B$, C&, D#, E#, F#
  s = 2
  n = Cells(2, "C")
  ps = Range("A" & Rows.Count).End(xlUp).Row + 1
  Application.ScreenUpdating = False
  For i = 2 To ps
    If Cells(i, "C") <> n Then
      Cells(s, "A") = A
      Cells(s, "C") = C
      Cells(s, "D") = D
      Cells(s, "E") = E
      Cells(s, "F") = F
      B = Left$(B, Len(B) - 2)
      If Len(B) > Columns("B:B").ColumnWidth Then Columns("B:B").ColumnWidth = Len(B) - 3
      Cells(s, "B") = B
      A = 0: B = "": C = 0: D = 0: E = 0: F = 0
      n = Cells(i, "C")
      s = s + 1
      i = i - 1
    Else
      A = Cells(i, "A")
      B = B & Cells(i, "B") & ", "
      C = Cells(i, "C")
      D = Cells(i, "D")
      E = Cells(i, "E")
      F = F + Cells(i, "F")
    End If
  Next
  Range(Cells(s, "A"), Cells(ps, "F")).ClearContents
  Application.ScreenUpdating = True
End Sub
[/vba]
Как воспроизвести ту же логику, только с текстовыми значениями?

Автор - ant6729
Дата добавления - 20.04.2017 в 01:21
Wasilich Дата: Четверг, 20.04.2017, 10:30 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
%)
[vba]
Код
Dim A$, B$, C$, D$, E$, F#

A = "": B = "": C = "": D = "": E = "": F = 0
[/vba]
 
Ответить
Сообщение%)
[vba]
Код
Dim A$, B$, C$, D$, E$, F#

A = "": B = "": C = "": D = "": E = "": F = 0
[/vba]

Автор - Wasilich
Дата добавления - 20.04.2017 в 10:30
ant6729 Дата: Четверг, 20.04.2017, 19:28 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Спасибо, Васильевич!
Из кода я немного уловил логику решения задания. Надеюсь, в следующий раз смогу увидеть ситуацию на Листе по аналогии с данным кодом.
Надеюсь...)
 
Ответить
СообщениеСпасибо, Васильевич!
Из кода я немного уловил логику решения задания. Надеюсь, в следующий раз смогу увидеть ситуацию на Листе по аналогии с данным кодом.
Надеюсь...)

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

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