День добрый! Подскажите, пожалуйста, дана таблица, упорядочил ее по названию организации, встречаются такие строчки, где организация повторяется. Необходимо просуммировать по организации, оставить только уникальные организации в таблице, повтор убрать. Помогите реализовать средствами Excel. Спасибо!
День добрый! Подскажите, пожалуйста, дана таблица, упорядочил ее по названию организации, встречаются такие строчки, где организация повторяется. Необходимо просуммировать по организации, оставить только уникальные организации в таблице, повтор убрать. Помогите реализовать средствами Excel. Спасибо!Uralan
Ну нужен такой вид, просто это, вообще, возможно Экселем сделать? После этого нужно такое проделать еще с 30 табличками и именно в таком же виде. Потом это все объединить в одну результирующую, вот там уже могут повторяться поля... Коряво, ну в общем понятно. Все увидел, спасибо большое!
Ну нужен такой вид, просто это, вообще, возможно Экселем сделать? После этого нужно такое проделать еще с 30 табличками и именно в таком же виде. Потом это все объединить в одну результирующую, вот там уже могут повторяться поля... Коряво, ну в общем понятно. Все увидел, спасибо большое!Uralan
Сообщение отредактировал Uralan - Вторник, 08.02.2011, 11:42
После этого нужно такое проделать еще с 30 табличками и именно в таком же виде. Потом это все объединить в одну результирующую
В таком случае есть смысл СНАЧАЛА слить все таблицы в Access и оттуда сводной вытащить итог. Это и проще и удобнее и быстрее (хотя если Excel старше 2003, а суммарно строк менее полутора миллионов, то можно всё это сделать сразу и в Excel).
Quote (Uralan)
После этого нужно такое проделать еще с 30 табличками и именно в таком же виде. Потом это все объединить в одну результирующую
В таком случае есть смысл СНАЧАЛА слить все таблицы в Access и оттуда сводной вытащить итог. Это и проще и удобнее и быстрее (хотя если Excel старше 2003, а суммарно строк менее полутора миллионов, то можно всё это сделать сразу и в Excel).
Можно макросом. Тут в общем видно, что куда откуда:
Code
Sub Otbor() Dim a(), oDict As Object, i As Long, temp As String
a = Range("d2:e" & Range("e" & Rows.Count).End(xlUp).Row).Value
Set oDict = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a) temp = UCase(Trim(a(i, 2))) If Not oDict.Exists(temp) Then oDict.Add temp, CStr(a(i, 1)) Else oDict.Item(temp) = CStr(--oDict.Item(temp) + a(i, 1)) End If Next
With ThisWorkbook.Worksheets(1) .Range("i2").Resize(oDict.Count) = Application.Transpose(oDict.keys) .Range("j2").Resize(oDict.Count) = Application.Transpose(oDict.items) End With
End Sub
D2:Eдоконца анализируем, из второго столбца извлекаем уникальные, первый суммируем, в I2, J2 выгружаем результат.
Можно макросом. Тут в общем видно, что куда откуда:
Code
Sub Otbor() Dim a(), oDict As Object, i As Long, temp As String
a = Range("d2:e" & Range("e" & Rows.Count).End(xlUp).Row).Value
Set oDict = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a) temp = UCase(Trim(a(i, 2))) If Not oDict.Exists(temp) Then oDict.Add temp, CStr(a(i, 1)) Else oDict.Item(temp) = CStr(--oDict.Item(temp) + a(i, 1)) End If Next
With ThisWorkbook.Worksheets(1) .Range("i2").Resize(oDict.Count) = Application.Transpose(oDict.keys) .Range("j2").Resize(oDict.Count) = Application.Transpose(oDict.items) End With
End Sub
D2:Eдоконца анализируем, из второго столбца извлекаем уникальные, первый суммируем, в I2, J2 выгружаем результат.Hugo