Пусть имеется число 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.
Комментарии