![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
Доброго времени суток, уважаемые форумчане!
Возникла проблема, с которой хочу к вам обратиться. Есть таблица, в которую загружаются данные по клиентам (лист "Данные"), нужно расчитать период задолженности (сколько месяцев просрочки, гр.14"N") и период задолженности в днях (гр.16 "P"), после чего, перенести полученные данные, на лист "Результат". Что сделано: На листе "Данные" в гр. 10-15 (J - Q), стоят формулы, которые расчитываются каждую строку отдельно, по каждой сумме. Теперь необходимо, с листа "Данные", перенести суммы, сгруппировав по клиентам, это я сделал путем сводной таблицы (Лист1 гр.1-3"A-C"), полученные данные (счет, Тип, ИНН), перенес на лист "Результат", затем сцепил эти данные, получив уникальное значение (Лист "Результат" гр.4"D", такой же как и на листе "Данные", сцепил "счета ДЗ" + "Тип" + "ИНН", в гр.12"L"). После чего, на листе "Результат", в каждой ячейке в гр.9-32"I-AF", прописал формулу "суммеслимн" и в каждую строку. С формулами, у меня получилось, но файл стал громадным и компьютер зависал при его расчетах. Можно это переложить на макрос? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
Данная тема размещена на других форумах, но без результатно (в т.ч. и этот форум).
http://www.planetaexcel.ru/forum/ind...203-perenos-da... http://www.programmersforum.ru/showthread.php?t=284362 http://www.excel-vba.ru/forum/index.php?topic=4139.0 http://www.cyberforum.ru/ms-excel/thread1567914.html http://www.excelworld.ru/forum/10-19856-1 |
![]() |
![]() |
![]() |
#3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
не мудрено...
полагаю, не у всех хватило силы дочитать до конца Ваше первое сообщение, не говоря уже о том, что потом еще открыть файл, сверять надписи в сообщении с данными в файле и снова пытаться это осмыслить... не знаю как остальные, особенно, на других форумах, но думаю задача не решена не потому, что очень сложная, а потому что никто за нее не брался много текста, меня отпугнуло именно это и, видимо, поэтому первый ответ в Вашей теме был от Вас же
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
Задача сводится к тому, что на лист "Результат", нужно разнести по колонкам (графам) данные из листа "Данные". На данный момент, в каждой ячейки стоит формула, "суммеслимн", которую и хочется заменить макросом (чтоб комп не зависал). Все остальное, можно сделать вручную (все, что до переноса данных).
|
![]() |
![]() |
![]() |
#5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
у Вас на листе данные в 14-й колонке формула выглядит так:
Код:
предлагаю ее заменить формулой из 2 ЕСЛИ: Код:
разница в результатах только в том, что у Вас значения <10 возвращались как строки с лидирующим нулем, а моя формула возвращает числа от 1 до 24, которые так же легко посчитать как и строки "01", "02", "03" ... "09", "10" ... "24" вообщем-то строки тоже элементарно получить (не очень усложняя формулу): Код:
второе: зачем Вы собираете ключ из Счет ДЗ + Тип + ИНН??? если во всех строках Тип = "Н-001", а ИНН = "-" какой смысл в этом действии????? если поле Счет ДЗ - уже есть ключом или реальных данных гораздо больше и там РЕАЛЬНО для одного счета ДЗ есть разные Тип и ИНН???
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Есть похожие макросы на кибере и на excelworld.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
Добрался до форума, чтобы посмотреть на мою тему и выразить всем свою благодарность за проделанную Вами, IgorGO и Hugo121, работу! Всегда прислушиваюсь к мнению IgorGo, и охотно пользуюсь его подсказками, в том числе и сейчас, хочу попробовать его подсказкой по формулам, я в своей практике, ранее такими не пользовался. Заодно отвечу, что в реальности, ИНН и Типы, разные, вот для чего нужна колонка "ключ", для формул которыми я воспользовался при расчетах.
На данную тему, помогли с ответом на других форумах, и прошу эту тему считать, закрытой. Помогли с макросом, который я сегодня попробовал в работе, пока все устраивает. Макрос, ниже. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
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 |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Строка
x = Range("A2:B" & Cells(Rows.Count, 1).End(xlUp).Row).Value лишняя, и ещё нужно позаботиться убрать возможные фильтры (я в своём варианте это сделал).
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выборка данных, перенос строки на другой лист) | Viten2 | Microsoft Office Excel | 1 | 03.05.2011 16:14 |
Перенос данных из строкив отдельные строки | Palomnik1096 | Microsoft Office Excel | 5 | 31.03.2011 14:15 |
Выбрать из строки и распределить по столбцам | Crystal78 | Microsoft Office Excel | 4 | 25.12.2010 23:00 |
Перенос данных из строки одной таблицы БД в другую БД | Optigood | БД в Delphi | 15 | 12.05.2010 17:07 |
Поиск по имени столбца и сложение строки по найденным столбцам | mihakr | Microsoft Office Excel | 2 | 12.03.2009 13:35 |