Сложение цифр ЧИСЛА в EXCEL

history

Пусть имеется число 456258 и необходимо найти сумму всех его цифр, т.е. 4+5+6+2+5+8. Сделать это можно одной формулой.


Пусть ячейка А1 содержит исходное число 456258 .

Просуммировать все цифры числа можно одной, но достаточно сложной формулой =СУММПРОИЗВ(--ПСТР(A1;СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1)));1))

Разберем подробнее (см. файл примера ).

  • функция ДВССЫЛ() возвращает массив чисел из диапазона А1:А6 {456258:0:0:0:0:0}. Ссылка на ячейку А6 сформирована текстовой строкой "A1:A" и функцией ДЛСТР() , которая вычислила количество цифр в числе (6). Сами элементы массива не важны, главное – его размерность – 6, т.е. вместо ДВССЫЛ("A1:A"&ДЛСТР(A1)) можно было написать формулу ДВССЫЛ("Z1:Z"&ДЛСТР(A1)) .
  • функция СТРОКА() формирует массив последовательных чисел {1:2:3:4:5:6} из номеров строк полученного на предыдущем шаге массива, начиная с 1.
  • функция ПСТР() извлекает последовательно по одному текстовому символу из исходного числа и возвращает массив {"4":"5":"6":"2":"5":"8"}.
  • двойное отрицание (--) преобразует текст в числовую форму и возвращает массив {4:5:6:2:5:8}.
  • функция СУММПРОИЗВ() суммирует элементы массива.

Промежуточные результаты вычисления можно увидеть, выделив в Строке формул интересующую часть формулы, например "A1:A"&ДЛСТР(A1) , а затем нажав клавишу F9.


Комментарии

Только для авторизованных пользователей

Аноним, 1 апреля 2017 г.
Отлично! Это то самое решение!!! А если задать доп.условие, например: складывать между собой числа, только если само число больше 843. Как будет выглядеть формула?
Михаил, 3 апреля 2017 г.
Используйте функцию ЕСЛИ()
Аноним, 21 сентября 2017 г.
День добрый! подскажите пожалуйста, а как сделать так что бы сумма чисел в одной яйчейке складывалась до простейшего числа, тоесть если это число 12, то складывало 1+2=3, если число 1993 то складывало 1+9+9+3= 22 но сводило его ещё дальше 22=2+2=4??? используя данную формулу над числом 1993 у меня выходит 22, а нужно что бы оно сложило его до 4... в общем что бы она все числа складывала до единичной , а ещё лучше если бы я вводил дату, к примеру: 29.01.1988 то функция бы складывала все значения до простейшего 2+9+1+1+9+8+8=2 (38=3+8=11) = (1+1=2) как можно это сделать? а второй вариант это проделывать такие операции но только для дня и месяца рождения? пример 29.01 = 2+9+1+0=3 (12=1+2=3) =СУММПРОИЗВ(--ПСТР(E3;СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(ЦЕЛОЕ(E3))));1))
Михаил, 23 сентября 2017 г.
Чтобы преобразовать дату 29.01.1988 в число без точек используйте =--ТЕКСТ(C8;"ддММгггг") Получите 29011988 Затем последовательно используйте формулу из статьи столько раз, сколько требуется. Каждый раз на вход формулы подавайте предыдущий результат
Аноним, 16 февраля 2018 г.
Добрый день, подскажите пожалуйста как в экселе из диапазона чисел вывести все , в которых есть цифра 2 и сложить их?!
Михаил, 16 февраля 2018 г.
В соседнем столбце пишите формулу =ДЛСТР(A19) - ДЛСТР(ПОДСТАВИТЬ(A19;2;"")) Эта формула вернет 0 если в числе нет 2. Подробнее см. статью http://excel2.ru/articles/podschet-vhozhdeniy-v-ms-excel-bukv-simvolov-v-tekstovoy-stroke Затем используйте формулу =СУММЕСЛИ(B19:B21;">0";A19:A21) Эта формула сложит все числа в которых есть 2.
Аноним, 27 сентября 2018 г.
если до 4 скалывать то используйте такую формулу =(B2>0)*(ОСТАТ(B2-1;9)+1)
Аноним, 27 сентября 2018 г.
здесь вроде что-то такое есть http://www.cyberforum.ru/ms-excel/thread1943612.html
Аноним, 23 ноября 2018 г.
Подскажите пожалуйста, а есть ли такой вариант: в ячейке числа (5+3+4,5+3,08+8), - необходимо в соседней подсчитать сумму этих чисел. Это возможно? Спасибо!
Михаил, 23 ноября 2018 г.
Если я правильно понял, то напишите формулу =5+3+4,5+3,08+8 и нажмите ENTER
Аноним, 26 марта 2019 г.
супер у меня все получилось. Благодарю😃
Аноним, 8 июля 2019 г.
Благодарю! то, что нужно! все получилось)
Аноним, 22 декабря 2019 г.
спасибо, класс, получилось!
(только для авторизованных пользователей)

© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved