![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 15
|
![]()
Например:
![]() В столбце "Оплата" - только положительные числа В столбце "Долг" - только отрицательные числа. *Под чертой – это пример новой таблицы, которая должна быть в новом файле. Вот "Коля" в сроке 2 имеет значение 20, а в строке 6 -20. Этот "Коля" нам в новой таблице не нужен. "Вася" - наоборот, сначала -30, потом 30. Тоже не нужен в новой таблице. "Петя" -50+40=-10 – переносим данные строки "Петя" в новую таблицу со значением -10. И так далее. Причем значение "дата" должно копироваться с той строки, в которой возникла разница. Например, у "Пети" и "Миши" все ясно, а вот у "Саши": долг, оплата и снова долг. Если долг будет увеличиваться, то сумма долга возрастет, а дата останется той, когда этот долг возник - 12.01.10. Вообще не могу сообразить в какую сторону двигаться. Спасибо за любую помощь. Последний раз редактировалось PhilAT; 28.12.2010 в 12:56. Причина: уточнение условий |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.10.2010
Сообщений: 105
|
![]()
Под чертой у Вас сформираованна табличка окончательная с доглгами и оплатой. не плохо бы было добавить к ней шапку и провести фильтрацию с критерием долг меньше нуля. (Вам нужно средствами Excel или на VBA?)... это как вариант, если я Вас правильно поняла, то может подойти, а если нет, то извините(((
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
![]()
Два варианта - отдельной таблицей и автофильтром. Отслеживается не дата возникновения долга, а последняя дата.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 15
|
![]()
2 brans
Под чертой – это пример новой таблицы. ![]() 2 vikttur Дело в том, что реальная таблица имеет несколько десятков тысяч строк и несколько VBA-скриптов, поэтому нужно не фильтровать,а перенести в новую таблицу, в другой файл. Но Ваш подход я препарирую, возможно что-нибудь найду там полезное. Спасибо! Последний раз редактировалось PhilAT; 28.12.2010 в 11:23. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Вот так попробуйте.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 15
|
![]()
2 nilem
Спасибо, это работает как следует! Только почему-то не могу понять как адаптировать к своей таблице, в которой Оплата и Долг не в 3-м и 4-м столбцах, а в 13-м и 14-м. Промежуточные столбцы имеют данные, которые тоже надо копировать, если по критериям (ну, которые в примере: Оплата и Долг) строка выбрана для копирования в другую таблицу. Казалось бы, надо просто заменить 3 на 13 и 4 на 14, но не понимая что и как - не получается. И разобраться не смог. Можно немножко прокомментировать текст VBA? |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Писать комментарии неинтересно. Лучше напишу еще вариант кода. См. файл.
Если таблицы большие, попробуйте сравнить варианты по скорости выполнения. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 15
|
![]()
2 nilem
Спасибо, дружище! Проблема оказалась в другом: если в сравниваемой ячейке (13-й или 14-й) нет цифры, но вдруг оказывается пробел или формула - скрипт вываливается. Еще интересная ситуация с первым столбцом, с датой. Дату почему-то коробит интересным способом: после переноса число и месяц меняются местами. Причём не важен формат или локаль исходной ячейки. И, кстати, работает молниеносно! Так, что я не стал сравнивать скорость. Просто подчистил пробелы, формат ячеек с датой преобразовал в число, а потом в целевой таблице преобразовал обратно. Еще раз спасибо!!! Последний раз редактировалось PhilAT; 11.01.2011 в 18:43. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
----------
Ну, чтобы была какая-то завершенность. Вот так учитывает пробелы и заодно точки вместо запятых в дробных числах (тоже часто бывает). Последний раз редактировалось nilem; 11.01.2011 в 20:27. Причина: Оказывается, уже не надо. ...и все-таки |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 15
|
![]()
2 nilem
Я тоже люблю завершенность, но не всегда могу её добиться.) Да, так еще лучше. Только с датой – все равно не понятно??? Тут уже "спортивный" интерес, что ли. Потому, что не уверен, что мне этот скрипт еще раз понадобится. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос, который создает новую таблицу | Olya2131 | Microsoft Office Access | 4 | 08.06.2010 20:27 |
получить новую таблицу по результатам запроса | T@tali | БД в Delphi | 6 | 04.06.2010 07:05 |
Как в FastReport-е сформировать новую страницу | _SERGEYX_ | Компоненты Delphi | 0 | 13.02.2009 11:26 |
сформировать таблицу TABLE3 | popivq | Microsoft Office Access | 2 | 20.09.2008 01:51 |