Sub ertert() Dim x, y(), i&, rw&, k$ x = Range("A2:B" & Cells(Rows.Count, 1).End(xlUp).Row).Value With Sheets("Результат") x = .Range("A7:C" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With ReDim y(1 To UBound(x), 1 To 24) With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x, 1) k = x(i, 1) & x(i, 3) & x(i, 2) 'Счет ДЗ - Тип - ИНН .Item(k) = i Next i With Sheets("Данные") x = .Range("A10:N" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With For i = 1 To UBound(x, 1) k = x(i, 1) & x(i, 2) & x(i, 10) If .Exists(k) Then rw = .Item(k) y(rw, x(i, 14)) = y(rw, x(i, 14)) + x(i, 9) End If Next i End With With Sheets("Результат") .Range("I7").Resize(UBound(y), 24).Value = y .Activate End With End Sub
Это нужно для того, что у одного клиента, может быть несколько типов договоров, которые ведутся на разных счетах. По этому, их нужно разделить в зависимости от ТИПа и СЧЕТа (ИНН у них один). В сводную, не знаю как сделать, только если руками прописать формулу (сцепить).
Сводная таблица, это конкурент формулы "суммеслимн". Она работает, как вариант решения данной задачи, но надо в сводную таблицу, включить еще идин столбик, "ключ" (сцепить "счет" + "Тип" + "ИНН" + "Счет")
Причем тут коллекторы? Под именем "Население", стоят как физические, так и юридические лица. Моя задача стоит в том, чтобы посчитать сумму ДЗ на любой период, а не заниматься коллекторской работой. Прошу прощение, но если так рассуждать как Вы, Evick, то любой счет, за коммунальные услуги, следовало бы считать, коллекторскими услугами. Каждый делает свою работу, моя, сводится к тому, чтобы посчитать цифру ДЗ.
Задача сводится к тому, что на лист "Результат", нужно разнести по колонкам (графам) данные из листа "Данные". На данный момент, в каждой ячейки стоит формула, "суммеслимн", которую и хочется заменить макросом (чтоб комп не зависал). Все остальное, можно сделать вручную (все, что до переноса данных).
Доброго времени суток, уважаемые форумчане! Возникла проблема, с которой хочу к вам обратиться. Есть таблица, в которую загружаются данные по клиентам (лист "Данные"), нужно рассчитать период задолженности (сколько месяцев просрочки, гр.14"N") и период задолженности в днях (гр.16 "P"), после чего, перенести полученные данные, на лист "Результат". Как я это делал: На листе "Данные" в гр. 10-15 (J - Q), стоят формулы, которые рассчитываются каждую строку отдельно, по каждой сумме. Теперь необходимо, с листа "Данные", Перенести суммы, сгруппировав по клиентам. Группировку по клиентам, я сделал путем сводной таблицы (Лист1 гр.1-3"A-C"), полученные значения (счет, Тип, ИНН), перенес на лист "Результат" (гр.1-3"A-C"), после чего, сцепил эти значения (счет, Тип, ИНН), получив уникальное значение (Лист "Результат" гр.4"D", такой же как и на листе "Данные", сцепил "счета ДЗ" + "Тип" + "ИНН", в гр.12"L"). Затем, на листе "Результат", в каждой ячейке в гр.9-32"I-AF", прописал формулу "суммеслимн" и в каждую строку. С формулами, у меня получилось, но файл стал громадным и компьютер зависал при его расчетах (в реальной таблице, более 100'000 строк). Возможно это переложить на макрос (перенос значений, а именно, замена функции "суммеслимн")?