2016-10-11 4 views
0

Мне нужна ваша помощь с извинениями кода. Ниже вы можете найти пример моего листа.
Мне нужно добавить значения итогов из подмножеств, и результат должен прийти в ячейку рядом с субтоталом в основном блоке. Но вот улов, количество подсетей не всегда одинаково. Это также означает, что ячейки являются переменными. и ниже этого основного является еще одним основным с его подкатегориями. субмарины добавлены с другим кодом. в этом примере есть только 2 подмножества, но в реальности реальный лист может быть близок к 20 subs.сделать сумму переменных ячеек

Надеюсь, вы, ребята, понимаете, что я пытаюсь спросить. ГРЦ

enter image description here

+0

Почему бы не просто использовать формулу? K2 = "= sum (" K4: K1000000 ") должен это сделать (хотя, конечно, вам не нужно использовать 1000000, если 1000 сделает). – Hrothgar

+0

Я не могу этого сделать, потому что сумма также добавит значения (пример main 1 total = sub1.1 + sub1.2 Main 2 total = sub 2.2 + sub 2.3 + sub2.4 и т. д.) – Steelbox

+0

Ah, теперь я вижу, что в основных строках нет цифр, поэтому я не понимал, что будет. – Hrothgar

ответ

0

Я предполагаю, что ваш первый основной блок находится в строке 3; если нет, внесите в него соответствующие изменения:
=SUM(OFFSET($K4,0,0,MATCH("Main",$B4:$B1000,-1),1))

Эта формула суммирует все значения в определенном диапазоне; функция OFFSET создает диапазон. Она начинается с определенной опорной ячейки - K4, в данном случае - то создает диапазон, перемещая вниз заданное количество строк, то право на указанное число столбцов - 0 строк, 0 столбцов для нас - и возвращает диапазон указанный высота и 1 столбец в ширину.

Мы получаем высоту от функции MATCH. Эта функция ищет первую ячейку, которая начинается со слова «Main» в любом месте следующих 1000 строк. 1000 здесь более или менее произвольны, это может быть любая ценность, которую вы уверены, найдете следующий заголовок «Main».

Недостатком этой формулы является то, что если не найдено совпадения - скажем, если это используется в последнем «основном» блоке, и под ним нет главного заголовка - он вернет ошибку. Мы можем контролировать это, добавив функцию IFERROR, чтобы получить:
=SUM(OFFSET($K4,0,0,IFERROR(MATCH("Main",$B$4:$B$1000,-1),50),1)), который будет принимать диапазон из 50 ячеек, если совпадение не найдено.

+0

спасибо, что это работает – Steelbox

Смежные вопросы