Страницы: 1
RSS
Суммирование данных в ячейках от пустой до пустой ячейки с условиями
 
Кто-нибудь подскажите пожалуйста как составить формулу на подсчет ячеек от пустой ячейки до пустой. Т.е. есть столбец с цифрами, с прочерками и пустыми ячейками. Надо в пустую ячейку вставить  сумму всех цифр с учетом прочерков, расположенных выше этой ячейки но до ближайшей сверху пустой  ячейки. В следующую пустую ячейку опять вставить сумму всех цифр с учетом прочерков,  расположенных выше, и тд. Что касается прочерков - они учитываются, но не суммируются. Но если по сумме с учетом прочерков выходит 0, то в итоге должен стоять не 0, а прочерк.  Пример в приложении, ячейки с результатом, который нужно получить по формуле выделены красным.
Заранее спасибо.
Изменено: Eleza24 - 22.12.2016 16:34:24
 
Eleza24, пробуйте макрос
Код
Sub El()
Dim r As Range, x
  For Each r In Columns(1).SpecialCells(xlCellTypeConstants).Areas
    x = WorksheetFunction.Sum(r)
    r.Cells(r.Count + 1) = IIf(x = 0, "-", x)
  Next
End Sub
 
а без макроса можно? С макросом получится слишком тяжелый файл, т.к. есть еще специфические настройки. вчера нашла файл там формула, но только обратная и без условий см приложение
 
Рядом протяните формулу массива:
=ЕСЛИ(A2=0;СУММ(ИНДЕКС($A$2:A2;СТРОКА()-1-ИНДЕКС(ЧАСТОТА(СТРОКА($A$2:$A$32);ЕСЛИ($A$2:$A$31=0;СТРОКА($A$2:$A$31)));СУММ(Ч(ЕПУСТО($A$2:A2))))):A2);A2)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, для полной красоты в Вашей формуле не хватало еще одного "ЕСЛИ" в самом начале  :)
 
=ЕСЛИ(A2=0;формула;A2)
Специально так задумано, чтобы можно было заменить всё на значения и вставить в 1-ый столбец сразу с исходными данными.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
=ЕСЛИ(A2="";СУММ($A$1:A1)-СУММ($B$1:B1);"")
 
Цитата
Eleza24 написал:
С макросом получится слишком тяжелый файл
Никто не заставляет держать макрос в файле. Если такую обработку надо выполнять с разными файлами, поместите макрос в Личную книгу макросов (PERSONAL.XLSB) и запускайте при любом открытом файле. Это ИМХО удобнее, чем многоэтажную формулу вставлять и протягивать.
Если это разовая задача, можно скопировать этот же макрос в виде одной строки
Код
For Each r In Columns(1).SpecialCells(xlCellTypeConstants).Areas:x = WorksheetFunction.Sum(r):r.Cells(r.Count + 1) = IIf(x = 0, "-", x):Next
, в Excel Alt+F11, Ctrl+g, Ctrl+v, Enter.
 
Спасибо всем конечно, но предложенные варианты не совсем соответствуют условию. В моем примере сумма должна стоять в том же столбце что и значения (красный цвет) и отсутствует условие - если сумма = 0, значение результата должно отображаться как "-", а не 0. Можно предложенные формулы как-нибудь модифицировать?
Заранее спасибо.
Изменено: Eleza24 - 26.12.2016 08:26:55
Страницы: 1
Читают тему
Наверх