Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 03:55   #1
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию Суммирование

Здравствуйте форумчане!
Подскажите пожалуйста код суммирования в итоговых строках "Итого:", "Всего по участку:" "в т.ч. подрядчик" в приведенном примере. В варианте когда пдрячик отсутствует(участок Запад), все считается, но как только "появляется" подрядчик(в приведенном примере - участок ЮГ) не соображу, как просуммировать итоговые строки, учитывая, что количечество экскаваторов по каждому участку - величина не постоянная(от 1 и более). Строка по каждому участку вставляется всегда последней при активации ячейки выбранного участка.

Очень надеюсь на вашу помощь.
Спасибо
Вложения
Тип файла: rar АмзФ.rar (55.2 Кб, 15 просмотров)
Trimbl вне форума Ответить с цитированием
Старый 24.05.2011, 09:02   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Объединение ячеек, разные типы данных в одном столбце... Все это для Excel плохо, не любит он такого издевательства. Придумать можно, но для обхода этих пакостей формулы придется усложнять. Например, "Итого"
Код:
=СУММ($P$10:P14)-СУММЕСЛИ($C$10:C14;"Итого:";$P$10:P14)*2
Не лучше ли преобразовать таблицу: отказаться от объединения, суммы в один столбец, итоги в другие?
vikttur вне форума Ответить с цитированием
Старый 24.05.2011, 10:27   #3
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
Объединение ячеек, разные типы данных в одном столбце... Все это для Excel плохо, не любит он такого издевательства. Придумать можно, но для обхода этих пакостей формулы придется усложнять. Например, "Итого"
Код:
=СУММ($P$10:P14)-СУММЕСЛИ($C$10:C14;"Итого:";$P$10:P14)*2
Не лучше ли преобразовать таблицу: отказаться от объединения, суммы в один столбец, итоги в другие?
vikttur, отказаться от объеденения возможно,хотя таблица приобретет несколько "корявый" вид, но не понял как это - "суммы в один столбец, итоги в другие", но самое гланое как объяснить VBA, что по участку "ЮГ" для первого Итого: необходимо суммировать ячейки столбца от начала блока(строка17 до собственно самого Итого(стр17+стр.18), а для подрядчика(стр.21+стр.24)? Как коду найти строку с которой будут начинаться объемы подрядчика?
Trimbl вне форума Ответить с цитированием
Старый 27.05.2011, 14:00   #4
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Цитата:
Сообщение от Trimbl Посмотреть сообщение
...не понял как это - "суммы в один столбец, итоги в другие"
Не нужно мешать мухи и котлеты.

В файле пример формулы при вынесении итоговых данных в отдельный (отдельные) столбец (столбцы).
Если сделать таблицу, которую понимает Excel, все расчеты будут намного проще.
В приложении неправильные формулы. См. пост ниже.
Вложения
Тип файла: rar сумма.rar (28.3 Кб, 11 просмотров)

Последний раз редактировалось vikttur; 27.05.2011 в 15:56.
vikttur вне форума Ответить с цитированием
Старый 27.05.2011, 14:59   #5
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

прошу прощения, в предыдущем примере ошибка - формулы работают при наличии итоговых сумм в столбце Р. Т.е. извлечение сумм, которые и так уже есть
Исправленный вариант прикреплен.
Вложения
Тип файла: rar сумма.rar (28.1 Кб, 17 просмотров)
vikttur вне форума Ответить с цитированием
Старый 27.05.2011, 15:44   #6
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
прошу прощения, в предыдущем примере ошибка - формулы работают при наличии итоговых сумм в столбце Р. Т.е. извлечение сумм, которые и так уже есть
Исправленный вариант прикреплен.
vikttur. благодарю за внимание.
В свою очередь прошу прощения, забыл уточнить, что участок №2(юг), а тем более №3(Север) не могут быть пока не произведены итоговые расчеты по первому участку(Запад) и так далее - третий участок отсутствует пока не завершены растеты по второму участку. А вот количество строк по каждому участку из месяца в месяц будет постоянно меняться (от1 до 10)
Хотелось-бы, чтобы код макроса сам определял верхнюю границу суммируемого диапазона т.е для второго участка(Юг) - верхняя граница определяется количеством строк первого участка(Запад),а третьего(север) -количеством строк первого участка(Запад) и второго(Юг) вместе взятых и т.д.
Trimbl вне форума Ответить с цитированием
Старый 27.05.2011, 15:55   #7
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

???
Показал вам не макрос, а формулу, но что в ней не нравится? Ей без разницы, есть данные ниже текущей ячейки или там пусто, граница диапазона определяется корректно. Попробуйте удалить данные ниже.
vikttur вне форума Ответить с цитированием
Старый 27.05.2011, 17:16   #8
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
???
Показал вам не макрос, а формулу, но что в ней не нравится? Ей без разницы, есть данные ниже текущей ячейки или там пусто, граница диапазона определяется корректно. Попробуйте удалить данные ниже.
Все хорошо, но при изменении количества строк в первом участке формула в ячейке ВВ14(при уменьшении на одну строку) выдает =ЕСЛИ(C14="Итого:";СУММ($P$10:P13)-СУММ($BC$10:BC13);ЕСЛИ(C14="Всего по участку:";СУММ(ИНДЕКС($P$10:P13;ПОИ СКПОЗ("яя";$B$10:B14;1)): #ССЫЛКА! );"")), хотя сумму выдает верно.
Trimbl вне форума Ответить с цитированием
Старый 27.05.2011, 17:48   #9
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от Trimbl Посмотреть сообщение
Все хорошо, но при изменении количества строк в первом участке формула в ячейке ВВ14(при уменьшении на одну строку) выдает =ЕСЛИ(C14="Итого:";СУММ($P$10:P13)-СУММ($BC$10:BC13);ЕСЛИ(C14="Всего по участку:";СУММ(ИНДЕКС($P$10:P13;ПОИ СКПОЗ("яя";$B$10:B14;1)): #ССЫЛКА! );"")), хотя сумму выдает верно.
Извиняюсь, недосказал: В исходном положении таблица участка имеет всего две строки.1. непосредственно данные и 2. Итого.
Формула макроса суммирования
Cells(i - 1, 16).FormulaR1C1 = "=IF(ISBLANK(R[-1]C),"""",SUM(R[-" & i - .Row - 1 & "]C:R[-1]C))"
идеально считае итоговую строку при добавлении строк и вставке нового участка. Но с появлением графы подрядчик все ломается. Создать что-то подобное для приведенного примера - это идеально
Trimbl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Суммирование GLM Microsoft Office Excel 3 27.12.2010 14:49
Суммирование Mike02 Microsoft Office Excel 2 24.06.2010 19:49
Суммирование Slavik Microsoft Office Excel 4 08.04.2010 14:45
Суммирование SlavaSH БД в Delphi 15 22.01.2009 12:29
суммирование от и до.... snakezx Microsoft Office Excel 1 28.11.2008 15:38