|
132 / 15 / 2
Регистрация: 27.11.2013
Сообщений: 509
|
|
Подсчет промежуточных итогов в таблице переменного размера04.11.2015, 22:27. Показов 10751. Ответов 10
Метки нет (Все метки)
Есть таблица, кол-во строк в которой меняется. Образец прилагается. В желтых строчках нужно ввести формулы промежут. итогов, например сумма и среднее. Я делаю по-школьному - рассчитываю границы промежуточных рейнджей (это тикеры в 4 столбце), а потом с пом. формул R1C1 циклом обсчитываю всю таблицу. Подозреваю, что это не самый эффективный метод - считает очень долго. Можно как-то оптимизировать процесс через массивы или объектные переменные? Причем в промежут. итогах мне нужны не значения, а именно формулы - они важны в текущей работе для быстрого подсчета.
0
|
|
| 04.11.2015, 22:27 | |
|
Ответы с готовыми решениями:
10
Подведение промежуточных итогов Общий итог столбца без промежуточных итогов Написать макрос для промежуточных итогов таблицы |
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||||||
| 04.11.2015, 22:47 | ||||||
Сообщение было отмечено shavka как решение
Решение
Один из возможных вариантов :
2
|
||||||
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
||||||
| 04.11.2015, 22:56 | ||||||
|
shavka, есть предложение задействовать штатную команду "Промежуточные итоги". Но для этого придется удалять существующие желтые строки. Все это делает следующий макрос, полученный в основном записью ручных действий.
1
|
||||||
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||||||
| 05.11.2015, 00:16 | ||||||
|
Если сумму необходимо считать по столбцу D , а среднее по столбцу E , то небольшое изменение :
1
|
||||||
|
132 / 15 / 2
Регистрация: 27.11.2013
Сообщений: 509
|
|
| 05.11.2015, 02:12 [ТС] | |
|
чо то там у вас не дописалось в конце в макросе. Ну ладна, если это записью макроса делается, я допишу. Но че то как-то стремно удалять желтые строчки. Он их точно мне сам вставит, где надо?
Добавлено через 5 минут Pashulka, у вас такая аскетичная изящная формулка, она меня вдохновляет. Но я не совсем понял, вот эти константы - 9, 1 - это относится к типу формул? Просто у меня реально формул больше, и столбцов, в которых надо эти формулы считать, больше. Я не стал утруждать аксакалов, думал, главное - принцип просечь. Если нестандартная какая-нить формула, подойдет ваш метод?
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 05.11.2015, 10:16 | |
Сообщение было отмечено shavka как решение
Решение
shavka, Если посмотрите справку, касательно стандартной функции рабочего листа =ПРОМЕЖУТОЧНЫЕ.ИТОГИ() , то увидите
что первый обязательный аргумент - это номер функции, в нашем случае, это 9 - СУММ и 1 - СРЗНАЧЕсли же результаты вычислений не должны зависеть от наличия фильтра(скрытых строк), то ПРОМЕЖУТОЧНЫЕ.ИТОГИ можно заменить на SUM и AVERAGE. Разумеется, подобным способом Вы можете вводить и более сложные(нестандартные) формулы, только не забудьте, что для программного ввода формул массива - нужно использовать свойство .FormulaArray
1
|
|
|
132 / 15 / 2
Регистрация: 27.11.2013
Сообщений: 509
|
|
| 05.11.2015, 13:19 [ТС] | |
|
Блин, точно, саффсем забыл. FormulaArray! А я просто Formula написал свойство. Потому он и не считает. Спасибо!!!
0
|
|
|
132 / 15 / 2
Регистрация: 27.11.2013
Сообщений: 509
|
|
| 26.12.2015, 18:36 [ТС] | |
|
pashulka, наслаждался вашим изящным макросом и тут вдруг облом: если в каком-либо из списков таблицы всего одна строчка, он дальше не группирует. Ошибка 1004. А если запросить через MsgBox адреса группируемых строк, то в этой единичной строчки он пишет такую билеберду:
$B$1:$L$1,$M$1:$AD$6,$B$2:$C$2,$F$2:$G$2 ,$J$2:$K$2,$B$3:$L$3,$B$4:$C$4,$F$4:$G$4 ,$J$4:$K$4, $B$5:$L$6,$Q$7:$AC$7,$A$1:$A$8,$C$8,$J$8 :$K$8,$M$8:$N$8,$Q$8:$AD$912, $L$9:$P$21,$L$22:$N$22,$L$23:$P$24,$L$25 :$N$25,$L$26:$P$33,$L$34:$N$34,$L$35:$P$ 40,$L$41:$N$41. О как! Никак нельзя это исправить? В принципе, я нашел решение. Просто рассчитываешь номера строк по границам списков, а потом циклом их группируешь через Rows.Group. Но я подозреваю, что это непрофессионально. А я уже чессслово, поверил в ваше всесилие
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 26.12.2015, 19:09 | |
|
shavka, Не заметил я в своём макросе группировки, но даже ежели её добавить (см.аттач), то если в столбце B будет дата(число) мы пролучим группу, если нет, макрос эту строку просто проигнорирует, но ошибки не будет.
1
|
|
|
132 / 15 / 2
Регистрация: 27.11.2013
Сообщений: 509
|
||||||
| 26.12.2015, 19:22 [ТС] | ||||||
|
500 раз спасибо! Точно, я ж сначала хотел просто итоги подсчитать, а потом думаю - нахли мне такая простыня, конца-края не видно, дай-ка загруппирую тем же макросом, но понятым мной несколько извращенно. Но не доперло до меня окончательно, я вот так написал:
0
|
||||||
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||
| 26.12.2015, 19:46 | ||
|
На всякий случай - цитата из офисной справки, об'ясняющая когда нужно применять SpecialCells (за исключением xlLastCell) к одной единственной ячейке :
1
|
||
| 26.12.2015, 19:46 | |
|
Помогаю со студенческими работами здесь
11
задача с использованием промежуточных итогов (меню данные-итоги)в excel 2003
Неправильный подсчет итогов в запросах Вывод итогов в таблице отчета СКД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|