Как суммировать столбец в Excel

Недавно у меня возникла задача просуммировать значения в каждом третьем столбце. Пример, о котором идет речь, мы рассмотрим позже в силу его сложности, а начнем с более простого случая — найдем сумму значений для всех четных / нечетных строк. Исходные данные представлены на рис. 1 (см. также лист «Пример1» Excel-файла).

Как суммировать столбец в Excel

Рис. 1. Данные о приходе / уходе [1]

Скачать заметку в формате Word или pdf, примеры в формате Excel

1-й способ. Суммирование четных строк. Более простой для понимания (на мой взгляд), но требующий дополнительной колонки для промежуточных вычислений. Введем в столбец Е формулу =ЕЧЁТН(СТРОКА()), возвращающую значение ИСТИНА, если строка четная, и ЛОЖЬ — если нечетная (рис. 2).

Как суммировать столбец в Excel

Рис. 2. Определение четности номера строки

После чего применим две формулы условного суммирования (рис. 3)

Как суммировать столбец в Excel

Рис. 3. Использование функции условного суммирования

Формула СУММЕСЛИ суммирует только те значения из диапазона D3:D46 (Диапазон_суммирования), для которых значение в столбце Е равно ЛОЖЬ. Аналогично для вычисления суммарного расхода в ячейке Н4 используется формула =СУММЕСЛИ(E3:E46;ИСТИНА;D3:D46).

Дополнение от 20.09.15. Еще проще с задачей справится формула =СУММЕСЛИ(C:C;"Приход";D:D), которая суммирует только те значения из столбца D, для которых значение в столбце С равно Приход.

2-й способ. Использование формулы массива. Если вы не знакомы с формулами массива, настоятельно рекомендую пройти по ссылке и почитать подробнее. На мой взгляд, работу формул массива кратко можно сформулировать так: формулы массива сначала выполняют действия, прописанные в них, над элементами массива, а потом суммируют эти действия для всех элементов массива (что-то наподобие формулы СУММПРОИЗВ — сумма произведений). Для того чтобы ввести в ячейку формулу массива, надо набрать формулу, а затем одновременно нажать CTRL+SHIFT+ВВОД. Это приведет к тому, что вокруг формулы (см. строку формул на рис. 4) появятся фигурные скобки: { и }. Не пытайтесь ввести скобки с клавиатуры; формула массива не возникнет! ? После редактирования формулы массива (или если вы случайно встали курсором в ячейку с такой формулой), повторно нажмите CTRL+SHIFT+ВВОД.

Как суммировать столбец в Excel

Рис. 4. Использование формулы массива для суммирования значений в нечетных строках.

Рассмотрим, как действует формула массива в нашем случае (рис. 4):

  1. СТРОКА(D3) — определяет номер строки для ячейки D3;
  2. ЕНЕЧЁТ(СТРОКА(D3)) — определяет, является ли номер строки, содержащей ячейку D3, нечетным; если нечетный, возвращает значение ИСТИНА (или единица), если четный — ЛОЖЬ (или ноль);
  3. ЕНЕЧЁТ(СТРОКА(D3))*D3 — умножает значение, хранящееся в ячейке D3 (536) на значение, полученное на предыдущем шаге;
  4. {=СУММ(ЕНЕЧЁТ(СТРОКА(D3:D46))*(D3:D46))} — суммирует в диапазоне D3:D46, все значения, полученные на предыдущем шаге, то есть, ЕНЕЧЁТ(СТРОКА(D3))*D3 + ЕНЕЧЁТ(СТРОКА(D4))*D4 + … + ЕНЕЧЁТ(СТРОКА(D46))*D46

Для вычисления суммарного расхода в ячейке Е49 используется формула {=СУММ(ЕЧЁТН(СТРОКА(D3:D46))*(D3:D46))}, которая находит сумму значений в диапазоне D3:D46 только для четных строк.

3-й способ. Подсмотрен у Билла Джелена в его книге Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel (рис. 4а). Для подсчета значений в нечетных строках используйте формулу: =СУММПРОИЗВ(ОСТАТ(СТРОКА(A2:A99);2);(C2:C99)). Для полсчета значений в четных строках воспользуйтесь формулой: =СУММПРОИЗВ(ОСТАТ(СТРОКА(A2:A99);2)+1;(C2:C99))

Подробнее о том, как действует последняя формула:

  1. СТРОКА(А2) — определяет номер строки для ячейки А2;
  2. ОСТАТ(СТРОКА(A2;2) — определяет остаток от деления значения, полученного на предыдущем шаге, на двойку; понятно, что для четных строк ОСТАТОК() будет равен нулю, а для нечетных — единице;
  3. ОСТАТ(СТРОКА(A2;2)+1 — прибавляет единицу к предыдущему результату; теперь для четных строк значение 1, а для нечетных — 0;
  4. Далее значение 1 или 0 умножается на значение в ячейке С2; т.е., значения в четных строках столбца С равны сами себе, а в нечетных — нулю;
  5. СУММПРОИЗВ() суммирует значения в столбце С только в четных строках.

Рис. 4а. Функция СУММПРОИЗВ для суммирования значений в четных строках

Рис. 4а. Функция СУММПРОИЗВ для суммирования значений в четных строках

Для суммирования значений в четных строках также подойдут формулы (см. Excel-файл, лист «Рис. 4а»):

=СУММПРОИЗВ(ОСТАТ(СТРОКА(2:99);2)+1;(D2:D99)); не обязательно указывать буквы для вычисления номера строки;

=СУММПРОИЗВ(--(ОСТАТ(СТРОКА(C2:C99);2)=0);(E2:E99)); если строка четная, то ОСТАТ()=0, т.е. этот фрагмент формулы вернет значение ИСТИНА, а операция минус минус, вернет значение 1;

=СУММПРОИЗВ(ОСТАТ(СТРОКА(A1:A98);2);(F2:F99)); вы просто сместили фрагмент формулы, определяющий 1/0, на строку выше.

* * *

Вернемся к более общей задаче — суммирование строк (столбцов) кратных n (рис. 5; см. также лист «Пример2» Excel-файла). Задача — найти сумму запасов, то есть сумму по строке 23 для всех столбцов с заголовком «Запасы».

Как суммировать столбец в Excel

Рис. 5. Суммирование значений в каждом третьем столбце

Рассмотрим, как работает формула массива во втором примере (рис. 5):

  1. СТОЛБЕЦ(B23) — определяет номер столбца для ячейки В23;
  2. ОСТАТ(СТОЛБЕЦ(B23);3) — определяет, остаток от деления номера столбца на 3;
  3. ЕСЛИ(ОСТАТ(СТОЛБЕЦ(B23);3)=2;1;0) — если остаток равен двум, функция ЕСЛИ возвращает значение 1; если не равен — 0;
  4. ЕСЛИ(ОСТАТ(СТОЛБЕЦ(B23);3)=2;1;0)*B23 — умножает значение, хранящееся в ячейке В23 (1) на значение, полученное на предыдущем шаге;
  5. {=СУММ(ЕСЛИ(ОСТАТ(СТОЛБЕЦ(B23:BX23);3)=2;1;0)*B23:BX23)} — суммирует в диапазоне В23:ВХ23, все значения, полученные на предыдущем шаге, то есть, ЕСЛИ(ОСТАТ(СТОЛБЕЦ(B23);3)=2;1;0)*B23 + ЕСЛИ(ОСТАТ(СТОЛБЕЦ(С23);3)=2;1;0)*С23 + ЕСЛИ(ОСТАТ(СТОЛБЕЦ(D23);3)=2;1;0)*D23 + … + ЕСЛИ(ОСТАТ(СТОЛБЕЦ(23);3)=2;1;0)*23.

2-й способ. Также подсмотрен у Билла Джелена. Для суммирования значений в каждой третьей строке воспользуйтесь формулой: =СУММПРОИЗВ(--(ОСТАТ(СТРОКА(A2:A148);3)=2);(C2:C148)).

Рис. 5а. Функция СУММПРОИЗВ для суммирования значений в каждой третьей строке

Рис. 5а. Функция СУММПРОИЗВ для суммирования значений в каждой третьей строке

Подробнее о том, как действует эта формула:

  1. СТРОКА(А2) — определяет номер строки для ячейки А2;
  2. ОСТАТ(СТРОКА(A2);3) — определяет остаток от деления значения, полученного на предыдущем шаге, на тройку;
  3. ОСТАТ(СТРОКА(A2);3)=2 — возвращает ИСТИНА, если остаток от деления равен 2 и ЛОЖЬ, если равен 0 или 1;
  4. Операция минус минус конвертит логические значения ИСТИНА/ЛОЖЬ в числовые 1/0;
  5. СУММПРОИЗВ() суммирует значения в столбце С только для тех строки, которые вернули значение 1 на предыдущем шаге.

Вуаля! ?

[1] Данные оформлены весьма симпатично для их просмотра, но очень неудобно для дальнейшей обработки. По возможности оформляйте исходные данные в форме, приемлемой для последующей их обработки сводными таблицами. На эту тему рекомендую замечательную книгу: Билл Джелен, Майкл Александер «Сводные таблицы в Microsoft Excel 2010». Если бы данные были оформлены соответствующим образом, никаких ухищрений не понадобилось бы. Данные можно было бы обработать стандартными сводными таблицами.

Оцените статью
Как в офисе.ru
Добавить комментарий