Сложение цифр ЧИСЛА в 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 г.
спасибо, класс, получилось!
Эльвира, 15 апреля 2024 г.
Добрый день! А если нужно включить условие, что если исходное число равно 11, 22,33, то складывать между собой их не нужно. Я так понимаю, что нужно сключить функцию ЕСЛИ. но в какой момент?
Михаил, 24 апреля 2024 г.
добрый день, направляю формулу =ЕСЛИ(ИЛИ(B3=A1:A3);1;СУММ(A1:A3)) В3 содержит исходное число, А1:А3 содержат числа 11, 22, 33 если В3 содержит 11 или 22 или 33, то выводится 1, если нет, то их сумма 11+22+33=66 формулу нужно ввести как формулу массива нажав CTRL+SHIFT+ENTER если трудностями с формулами массива, то формула следующая =ЕСЛИ(ИЛИ(B3=A1;B3=A2;B3=A3);1;СУММ(A1:A3))
Tatyana, 28 апреля 2024 г.
Здравствуйте! Нигде не могу найти ответ, подскажите пожалуйста. Я работаю с числами и датами, где любое число сводится до максимального значения 22. Например, число дня 18 это ок, но если число дня 23 (больше 22), то оно уже должно складываться по цифрам (2+3=5). Или год, например, 1995. Это больше 22, значит, число складывается по цифрам. 1+9+9+5 = 24. Но 24 больше, чем 22, а значит, оно должно снова сложиться по цифрам (2+4 = 6). И важно установить условие, что если число меньше или равно 22-м, то оно остаётся как есть, а если оно больше 22х, то оно складывается по цифрам. И если, как в значении с годом, получается число меньше или равно 22 (например, 1992 = 1+9+9+2= 21 - ок. Но если это 1994 = 1+9+9+4 = 23, а это уже больше 22х, то оно вновь должно сложиться по цифрам (2+3=5). Буду очень признательна, если вы сможете подсказать мне формулу данного условия. От души благодарю!
Михаил, 5 мая 2024 г.
добрый день, формула не сильно отличается от приведенной в статье, но ее нужно применять итерационно, пока число не станет меньше или равно 22 =ЕСЛИ(A8>22;СУММПРОИЗВ(--ПСТР(A8;СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A8)));1));A8) файл с полным ответом я разместил в нашей группе https://vk.com/excel2ru
(только для авторизованных пользователей)

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