Страницы: 1
RSS
поменять местами и сложить ячейки в excel
 
в примере показано как хочется видеть  
суть:  
столбец1  столбец2 столбец3  
товар1    товар2     10  
товар2    товар1      5  
товар1    товар4      1  
 
нужно  
столбец1  столбец2 столбец3  
товар1    товар2     15  
товар1    товар4      1
 
Допстолбец?  
=IF(C2>D2;C2&D2;D2&C2)  
и по нему делать выборку.
 
это тоже самое что сцепить, поменяв местами столбцы  
Это я и так могу  
 
мне нужно суммировать две строки если встречаются обратные значения  
механически это:  
1. создать такие же столбцы поменяв их местами  
2. найти совпадающие значения столбцов  
3. вырезать их  
4. сложить в них количество  
5. вставить в вырезанный список  
по сумме должно совпадать с изначальным
 
автору решения 100 руб. на мобильный
 
Без красоты и общей суммы. Но можно нарастить.
 
Сбиваем цену?  
Прошлый раз было 300...:)  
Надо было сразу это условие оговаривать.  
Не пришлось бы снова заказывать
 
а итоговые таблицы можно не сцеплять, что бы в отдельных столбцах были  
а если уж совсем размечтаться, то на одном листе исходные 3 столбца данных, а на другом листе готовые 3 столбца  
 
и номер свой на 89167531902 для награды  
только в посте 3 последние цифры напиши, для проверки
 
Это ко мне обращаетесь?  
Можно и так, только придётся допмассив наверное подключать.  
А номер в подписи, другого не будет. Не все за мобильники по российской системе платят, есть и другие схемы - например абонентка :)
 
Вот.  
В коде в строках  
 
   With ThisWorkbook.Worksheets(1)  
       .Range("L5:M5").Resize(oDict.Count) = b  
       .Range("N5").Resize(oDict.Count) = Application.Transpose(oDict.items)  
   End With  
 
указывайте свой лист и свои ячейки для выгрузки.
 
Все работает,  
а можно как-то обойти ограничение в 65 тыс строк?  
перенес макрос в 2007 excel, все равно на 65 тыс встает и ругается
 
а то 1,5 млн строк однако..
 
Игорь, может сразу заполнять b? Переопределяем его по UBound(a), а потом типа такого (внутри With...End With):  
 
If Not .Exists(temp) Then  
           j = j + 1: .Item(temp) = j  
           b(j, 1) = Split(temp, "|")(0)  
           b(j, 2) = Split(temp, "|")(1)  
           b(j, 3) = a(i, 1)  
       Else  
           k = .Item(temp)  
           b(k, 3) = b(k, 3) + a(i, 1)  
       End If
 
эти строки между чем вставить?
 
300 рублей
 
С помощью Николая  - избавились от Transpose.
 
Все работает на ура, так что огромное спасибо и    
 
николай это nilem?  
 
А то перечислю не тем, кому надо
 
Да, это nilem.  
Интересно - как быстро 1.5 млн. обрабатываются?
 
около минуты
 
nilem и hugo  
у вас есть кошельки яндекс денег
Страницы: 1
Читают тему
Наверх