Если у вас есть ячейка, содержащая значение, вы можете придумать способ сложить все цифры в значении. Например, если ячейка содержит значение 554, вы можете определить сумму 5 + 5 + 4, которая равна 14.

Есть несколько способов подойти к этой задаче. (Разве в Excel так не всегда?) Первый — использовать формулу, основанную на нескольких функциях:

=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))

Эта обычная формула суммирует цифры в любом целочисленном значении (в ячейке A1) простым и элегантным способом. Однако это не единственно возможная формула. Следующая формула массива (завершается нажатием Ctrl + Shift + Enter) версия той же формулы:

=SUM(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))

Любая из этих формул работает нормально, если значение в A1 является положительным целым числом. Если в числе есть какие-либо нецифровые символы (например, отрицательный знак или десятичная точка), то формулы возвращают #VALUE! ошибка.

Это не единственные формулы, которые можно использовать для такого типа расчетов.

Вы можете найти другие примеры формул в Базе знаний Microsoft:

http://support.microsoft.com/?kbid=214053

Вы также можете использовать пользовательскую функцию для возврата желаемой суммы. Следующий макрос перебирает каждую цифру в указанной ячейке и вычисляет итог. Затем это значение возвращается пользователю:

Function AddDigits(Number As Long) As Integer     Dim i As Integer     Dim Sum As Integer     Dim sNumber As String

sNumber = CStr(Number)

For i = 1 To Len(sNumber)

Sum = Sum + Mid(sNumber, i, 1)

Next     AddDigits = Sum End Function

Чтобы использовать эту функцию, просто используйте в ячейке такую ​​формулу, как = AddDigits (A1). Еще более компактная пользовательская функция (вызываемая таким же образом) следующая:

Function AddDigits(ByVal N As Long) As Integer     Do While N >= 1         AddDigits = AddDigits + N Mod 10         N = Int(N / 10)

Loop End Function

В отличие от более раннего макроса, эта версия не преобразует содержимое ячейки в строку для ее обработки. Вместо этого он проходит через каждую цифру значения, удаляя последнюю цифру и добавляя ее к общей сумме.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (12002) применим к Microsoft Excel 2007, 2010, 2013 и 2016.

Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь: link: / excel-Summing_Digits_in_a_Value [Суммирование цифр в значении].