[identity profile] playboylife.livejournal.com posting in [community profile] useful_faq
В нем есть очень удобная функция СУММЕСЛИ. То есть она суммирует все значения, удовлетворяющие критерию.

Проблема в том, что делать она это хочет только если значения расположены в одной строке или столбике и если выделить их например А1-А51. А мне нужно, чтобы ексель применил эту функцию к А4,А6,А8,А10 и т.д.. Выделяя через ктрл диапазон значений функция выдает #ЗНАЧ! и все. Очень нужна помощь. Спс.


зы. существует много таблиц для которых нужно посчитать суммы первых, вторых и так далее ячеек, только если эти суммы удовлетворяют критерию. сама таблица 12х15, а таблиц всего 23. вручную считать оч. долго. может если не ексель существуют еще способы?

Date: 2010-04-02 03:50 am (UTC)
From: [identity profile] a-bronx.livejournal.com
Если набор требуемых ячеек совершенно нерегулярный, то можно выделить руками нужные ячейки, дать этой группе имя и скормить это имя как параметр для функции СУММЕСЛИ().

Если нужно выбрать только N-e строки, то нужно использовать формулу массива, например:
=SUM(IF(MOD(ROW(Range),N)=0, Range, 0))    // просто суммирование каждой N-й строки
=SUM(IF(MOD(ROW(Range),N)=0),IF(Range > 10, Range, 0), 0)  // суммирование каждой N-й строки, в которой значение превышает 10.

где Range - это диапазон, либо в виде A1:B99, либо как имя именованного диапазона.

НО! Формулу нужно вводить не просто Enter-ом, а Ctrl-Shift-Enter-ом, чтобы это была формула массива (в строке формул она будет заключена в фигурные скобки). Обычно функции IF и ROW требуют параметром одно значение, но мы не можем его дать в нашей формуле, так как нам нужно, чтобы _каждая_ ячейка была подставлена и проверена, непосредственно при вычислении суммы. Если вместо ячейки дать параметром диапазон/массив, и сохранить формулу как формулу массива, то Эксель сам подставит нужные ячейки, когда будет пробегать по диапазону/массиву. Т.е. это эквивалентно:
SUM = 0
FOREACH(Cell in Range)
    SUM = SUM + IF( MOD(ROW(Cell),N) = 0, Cell, 0)


Разумеется, можно применять любые другие условия фильтрации.