Страницы: 1
RSS
Макрос. Сумма диапазонов ячеек в таблице
 
Здравствуйте.  
Задача:  
Есть таблица изделий,которые состоят из деталей. Необходимо просуммировать кол-во деталей входящих в каждое изделие и поставить  в ячейку напротив значение этой суммы. Метод должен быть универсален, так в таблице могут появляться новые изделия. В ячейке суммы хотелось бы увидеть вставленную формулу,с суммой диапазона ячеек входящих в изделие. Уже день борюсь, вроде все просто..... но не получается вычислить с помощью макроса эти диапазоны которые нужно просуммироввать.  
 
Пример прикладываю.  
 
Заранее спасибо.
 
Совсем забыл сказать....  
 
Каждое изделие я отметил "1" в соседнем столбце. Идею видел как определение диапазонов между каждой "1"-цей и потом суммирование этих диапазонов.
 
Люди. I'am need help :)
 
\
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Проверяйте. Ограничение: какой-либо символ в конце таблицы. Можно обойтись и без него, но так проще. Мне.
 
И мой вариант:  
Public Sub www()  
   Dim a As Range  
   For Each a In [c:c].SpecialCells(2, 1).Areas
       a.Cells(1).Offset(-1) = Application.Sum(a)  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
Проглядел, если нужна формула то:  
Public Sub www()  
   Dim a As Range  
   For Each a In [c:c].SpecialCells(2, 1).Areas
       a.Cells(1).Offset(-1).Formula = "=Sum(" & a.Address & ")"  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
Серж, желание увидеть формулу - это от недопонимания :-)
 
А Бог его... Мож ему захотца к-во деталей менять:-)
Я сам - дурнее всякого примера! ...
 
Окончательный(надеюсь:-)).
Я сам - дурнее всякого примера! ...
 
все варианты мне очень понравились : )  
 
Я специально не использую, по крайней мере стараюсь не использовать ф-ции листа. Не моё эт) Использовал только Transpoce (вроде так... или не так ^_^). И то два раза) Кол-во "аргументов" ограничено только фантазией) Если понадобится (мне или кому-то на форуме), могу попытаться научить её понимать булевы значения и числа в качестве "аргументов"... Изначально задумывалась как альтернатива СУММ : )  
 
Серж, у меня вопрос по твоей "чудо-функции": а если значение в ячейку выводит формула, она просуммирует?
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Нет. Исходя из условий ТС, я так понял, что там будут константы. В случае формул немного другой подход. Я тут такое выкладывал:  
http://www.programmersforum.ru/showthread.php?t=167663
Я сам - дурнее всякого примера! ...
 
Хотя можно и так, только ориентироваться по единичкам в столбце А.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=11.10.2011 09:57}{thema=}{post}А Бог его... Мож ему захотца к-во деталей менять:-){/post}{/quote}  
 
Спасибо:) В том то и дело, что захочется. Таблица очень длинная, несколько тысяч строк...И почти каждый день туда что-то добавляют или удаляют от туда)
 
{quote}{login=KukLP}{date=11.10.2011 09:52}{thema=}{post}Проглядел, если нужна формула то:  
Public Sub www()  
   Dim a As Range  
   For Each a In [c:c].SpecialCells(2, 1).Areas
       a.Cells(1).Offset(-1).Formula = "=Sum(" & a.Address & ")"  
   Next  
End Sub{/post}{/quote}  
 
Хороший, пример. Спасибо. Но есть одно но....  
У меня в таблице(в примере) каждое изделие в которое входят детали помечено в соседнем левом столбце "1". Как сделать так, чтобы макрос проверял, если там стоит единица, значит это является изделием и нужно просуммировать(точно также как в вашем примере) значения которые в него входят. Надеюсь понятно объяснил.
 
Так.  
 
67868
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=12.10.2011 12:49}{thema=}{post}Так.  
 
67868{/post}{/quote}  
 
Спасибо большое:) Завтра попробую прицепить к моей таблице..:)
 
Сереж, спасибо за ответ) У меня вчера время "вечернего тупизма" настало) Нет бы попробовать, чем вопросы глупые задавать)))
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=KukLP}{date=12.10.2011 12:49}{thema=}{post}Так.  
 
67868{/post}{/quote}  
 
Вы будете смеяться, но я все же спрошу:) Попытался я последний вариант прикрепить к своей таблице. Столбцы у меня само собой по другому расположены.Изменил значения в макросе на нужные мне столбцы. Как-я то ерунда получается)) Столбец с единицами у меня "L" или номер 12. Значения которые должны суммироваться в столбце "K" или номер 11 :) Хелп ми...)
 
Люди, аууу...:) Очень нужно:)
 
{quote}{login=Romanich}{date=14.10.2011 11:04}{thema=Re: }{post}{quote}{login=KukLP}{date=12.10.2011 12:49}{thema=}{post}{/post}{/quote}Столбцы у меня само собой по другому расположены.{/post}{/quote}И кто мешал показать реальную структуру?  
Цитата из Правил: "... старайтесь сохранить структуру, расположение таблиц, имена листов - аналогично оригиналу."
 
{quote}{login=Юрий М}{date=15.10.2011 08:30}{thema=Re: Re: }{post}{quote}{login=Romanich}{date=14.10.2011 11:04}{thema=Re: }{post}{quote}{login=KukLP}{date=12.10.2011 12:49}{thema=}{post}{/post}{/quote}Столбцы у меня само собой по другому расположены.{/post}{/quote}И кто мешал показать реальную структуру?  
Цитата из Правил: "... старайтесь сохранить структуру, расположение таблиц, имена листов - аналогично оригиналу."{/post}{/quote}  
 
Согласен. Каюсь. Мне просто показалось, что я и сам пойму как подправить и вставить в мою таблицу...Пример прикреплю завтра:)
Страницы: 1
Читают тему
Наверх