Суммирование чисел написанных через дробь в экселе

Обновлено: 05.07.2024

Предположим, что у нас имеется вот такая таблица с данными по выручке и выполнению плана для нескольких городов:

sum-every-N-row1.jpg

Необходимо просуммировать выручку по всем городам или, что примерно то же самое, подсчитать средний процент выполнения плана по всем городам.

Если решать проблему "в лоб", то придется вводить длинную формулу с перебором всех ячеек, т.к. сразу весь диапазон одним движением выделить не получится:

sum-every-N-row2.jpg

Если количество городов в таблице больше пары десятков, то такой способ начинает нагонять тоску, да и ошибиться при вводе формулы можно запросто. Как же поступить? Есть способы сделать это изящнее.

Способ 1. Функция СУММЕСЛИ (SUMIF) и ее аналоги для выборочного суммирования по условию

Если в таблице есть столбец с признаком, по которому можно произвести выборочное суммирование (а у нас это столбец В со словами "Выручка" и "План"), то можно использовать функцию СУММЕСЛИ (SUMIF) :

sum-every-N-row3.jpg

Первый аргумент этой функции - диапазон проверяемых ячеек, второй - критерий отбора (слово "Выручка"), третий - диапазон ячеек с числами для суммирования.

Начиная с версии Excel 2007 в базовом наборе появилась еще и функция СРЗНАЧЕСЛИ (AVERAGEIF) , которая подсчитывает не сумму, а среднее арифметическое по условию. Ее можно использовать, например, для вычисления среднего процента выполнения плана. Подробно про все функции выборочного суммирования можно почитать в этой статье с видеоуроком. Минус этого способа в том, что в таблице должен быть отдельный столбец с признаком, а это бывает не всегда.

Способ 2. Формула массива для суммирования каждой 2-й, 3-й . N-й строки

Если удобного отдельного столбца с признаком для выборочного суммирования нет или значения в нем непостоянные (где-то "Выручка", а где-то "Revenue" и т.д.), то можно написать формулу, которая будет проверять номер строки для каждой ячейки и суммировать только те из них, где номер четный, т.е. кратен двум:

sum-every-N-row4.jpg

Давайте подробно разберем формулу в ячейке G2. "Читать" эту формулу лучше из середины наружу:

  • Функция СТРОКА (ROW) выдает номер строки для каждой по очереди ячейки из диапазона B2:B15.
  • Функция ОСТАТ (MOD) вычисляет остаток от деления каждого полученного номера строки на 2.
  • Функция ЕСЛИ (IF) проверяет остаток, и если он равен нулю (т.е. номер строки четный, кратен 2), то выводит содержимое очередной ячейки или, в противном случае, не выводит ничего.
  • И, наконец, функция СУММ (SUM) суммирует весь набор значений, которые выдает ЕСЛИ, т.е. суммирует каждое 2-е число в диапазоне.
  • Данная формула должна быть введена как формула массива, т.е. после ее набора нужно нажать не Enter, а сочетание Ctrl+Alt+Enter. Фигурные скобки набирать с клавиатуры не нужно, они добавятся к формуле автоматически.

Для ввода, отладки и общего понимания работы подобных формул можно использовать следующий трюк: если выделить фрагмент сложной формулы и нажать клавишу F9, то Excel прямо в строке формул вычислит выделенное и отобразит результат. Например, если выделить функцию СТРОКА(B2:B15) и нажать F9, то мы увидим массив номеров строк для каждой ячейки нашего диапазона:

sum-every-N-row5.jpg

А если выделить фрагмент ОСТАТ(СТРОКА(B2:B15);2) и нажать на F9, то мы увидим массив результатов работы функции ОСТАТ, т.е. остатки от деления номеров строк на 2:

sum-every-N-row6.jpg

И, наконец, если выделить фрагмент ЕСЛИ(ОСТАТ(СТРОКА(B2:B15);2)=0;B2:B15) и нажать на F9, то мы увидим что же на самом деле суммирует функция СУММ в нашей формуле:

sum-every-N-row7.jpg

Значение ЛОЖЬ (FALSE) в данном случае интерпретируются Excel как ноль, так что мы и получаем, в итоге, сумму каждого второго числа в нашем столбце.

Легко сообразить, что вместо функции суммирования в эту конструкцию можно подставить любые другие, например функции МАКС (MAX) или МИН (MIN) для вычисления максимального или минимального значений и т.д.

Если над таблицей могут в будущем появляться новые строки (шапка, красивый заголовок и т.д.), то лучше слегка модернизировать формулу для большей универсальности:

sum-every-N-row8.jpg

Способ 3. Функция БДСУММ и таблица с условием

Формулы массива из предыдущего способа - штука красивая, но имеют слабое место - быстродействие. Если в вашей таблице несколько тысяч строк, то подобная формула способна заставить ваш Excel "задуматься" на несколько секунд даже на мощном ПК. В этом случае можно воспользоваться еще одной альтернативой - функцией БДСУММ (DSUM) . Перед использованием эта функция требует небольшой доработки, а именно - создания в любом подходящем свободном месте на нашем листе миниатюрной таблицы с условием отбора. Заголовок этой таблицы может быть любым (слово "Условие" в E1), лишь бы он не совпадал с заголовками из таблицы с данными. После ввода условия в ячейку E2 появится слово ИСТИНА (TRUE) или ЛОЖЬ (FALSE) - не обращайте внимания, нам нужна будет сама формула из этой ячейки, выражающая условие, а не ее результат. После создания таблицы с условием можно использовать функцию БДСУММ (DSUM) :

sum-every-N-row10.jpg

Способ 4. Суммирование каждой 2-й, 3-й. N-й строки

Если нужно просуммировать не отдельные ячейки, а целые строки, то можно это легко реализовать формулой массива, аналогичной способу 2:

sum-every-N-row11.jpg

Поскольку функция СУММПРОИЗВ (SUMPRODUCT) автоматически преобразует свои аргументы в массивы, то в этом случае нет необходимости даже нажимать Ctrl+Shift+Enter.

5cab22ed2f557505831457.jpg

пример на скрине

Простой 8 комментариев

AnnTHony

IMHO формула не умеет считать цифры с буквами. Вам нужно хранить буквы и цифры в разных ячейках для формулы.

5cab2c72b0219652214779.jpg

Saboteur, а если подсчитать сумму только тех ячеек где есть любая буква. Если просто использовать сумм, то суммируются ячейки без текста, а как сделать наоборот, чтобы суммировались только ячейки которые содержат любую букву? Число и строка - разные типы переменных. Формула не сможет суммировать.

obezh

Что мешает сделать так:
Л П None
8 2
3 9
6
2
И потом уже суммировать цифры в столбцах

Volounteer

Для буквы "л" формула такая:
=СУММ(ЕСЛИОШИБКА(ЕСЛИ(ПОИСК("л";B4:G4);--ПОДСТАВИТЬ(B4:G4;"л";""));0))
Для "п" соответственно такая:
=СУММ(ЕСЛИОШИБКА(ЕСЛИ(ПОИСК("п";B4:G4);--ПОДСТАВИТЬ(B4:G4;"п";""));0))

Обе - формулы массива. Вводятся одновременным нажатием клавиш Ctrl+Shift+Enter

Игорь, может еще поможете с одним вопросом, правда не знаю возможно ли вообще такое.

Суть в следующем. Для каждой ячейки хочу сделать выпадающий список с этими же значениями, например 8л;2п;3л и т.д

Как сделать чтобы в ячейке при выборе значения была видна только цифра? например я выбрал 8л из выпадающего списка, но в ячейке было видно только цифру 8, но при этом работала ваша формула

Для буквы "л" формула такая:
=СУММ(ЕСЛИОШИБКА(ЕСЛИ(ПОИСК("л";B4:G4);--ПОДСТАВИТЬ(B4:G4;"л";""));0))
Для "п" соответственно такая:
=СУММ(ЕСЛИОШИБКА(ЕСЛИ(ПОИСК("п";B4:G4);--ПОДСТАВИТЬ(B4:G4;"п";""));0))

Надеюсь понятно написал, что я хочу?

Volounteer

maratmd, думаю, тут не обойтись без макроса, который будет красить букву в цвет фона ячейки при выборе какого-то значения из списка. Таким образом, в списке будут цифры с буквами, а в ячейке видны только цифры (буквы будут окрашены в фоновый цвет). Других путей не вижу. Макрос надо поместить в модуль листа, диапазон замените на свой, в котором расположены ячейки со списками:

Используйте формат "Дроб", чтобы отображать или ввести числа как фактические дроби, а не в десятичных числах.

Выделите ячейки, которые нужно отформатировать.

На вкладке Главная нажмите кнопку вызова диалогового окна рядом с именем группы Число.

Кнопка вызова диалогового окна в группе "Число"

В списке Категория выберите дроби.

В списке Тип выберите нужный тип формата дроби.

Формат дроби

В этом формате 123,456 отображается как

Дробная часть с одной цифрой

123 1/2, округление до ближайшего однозначного значения дроби

123 26/57, округлизация до ближайшего двузначного значения дроби

Трижды значок дроби

123 57/125, округлизация до ближайшего трехзначного значения дроби

Дробный в качестве дробей

Дробный по кварталам

Дробный в качестве частиц

Дробные части в качестве шестнадцатых

Дробный в качестве десятых

Дробные части в качестве сотых

Число в активной ячейке выбранного на этом сайте отображается в поле Образец, чтобы можно было просмотреть выбранные параметры форматирования.

Советы для отображения дробей

После применения формата дроби к ячейке дробные числа, а также фактические дроби, которые вы в нее введите, будут отображаться как дроби. Например, если ввести 0,5 или 1/2, то при формате ячейки с типом дроби до одной цифры будет 1/2.

Если к ячейке не применен формат дроби и вы введите дробную часть, например 1/2,она будет отформатирована как дата. Чтобы отобразить дробную часть, применив формат дроби, а затем впечатаем ее еще раз.

Если вам не нужно выполнять вычисления с дробями, перед тем как ввести в нее дробную часть, можно отформать ячейку как текст, щелкнув Текст в списке Категория. В этом случае дробные части не будут уменьшаться или преобразовываться в десятичных. Однако математические вычисления с дробями, которые отображаются как текст, выполнять нельзя.

Чтобы сбросить числовом формате, в диалоговом окне Категория(диалоговое окно Формат ячеек) или Числовом формате(вкладкаГлавная, группа Число) нажмите кнопку Общий. В ячейках с форматом Общий форматирование к числам не применяется.

Читайте также: