ALARGESUM

=ALARGESUM(a)

a
strings of digits in a 1D vertical array

sums vertical array of large numbers

Xlambda

Well-known Member
Joined
Mar 8, 2021
Messages
860
Office Version
  1. 365
Platform
  1. Windows
ALARGESUM !! recursive !! sums vertical array of large numbers, calls LARGESUM
Excel Formula:
=LAMBDA(a,
    LET(n,ROWS(a),x,INDEX(a,n),
       IF(n=1,a,LARGESUM(ALARGESUM(INDEX(a,SEQUENCE(n-1))),x))
    )
)
LAMBDA 6.0.xlsx
AB
167834563234560684256775322456780876839
2890746476745421097897675645434623145856
3765543422314343656765675858532125340988
4=ALARGESUM(A1:A3)
51724124462294325438920126826423529363683
6
ALARGESUM post
Cell Formulas
RangeFormula
A4A4=FORMULATEXT(A5)
A5A5=ALARGESUM(A1:A3)
 
Upvote 0
Checking latest excel update recursion limits.
CM Lambda helper functions.xlsx
ABCDEFGHIJKL
1nr.chars
2253
3=REPT(MOD(SEQUENCE(27)-1,9)+1,A2)
41111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
52222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
63333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
74444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
85555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
96666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
107777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
129999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
131111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
142222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
153333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
164444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
175555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
186666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
197777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
208888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
219999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
221111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
232222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
243333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
254444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
265555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
276666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
287777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
298888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
309999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
31lenghts
32check=ALARGESUM(C4#)
33255149999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999985
34=LEN(C33)
35
36sum check
37=RIGHT(C33,4)
389985
39=SUM(--REPT(MOD(SEQUENCE(27)-1,9)+1,4))
40149985
41Note: for 254 chars will get an error
42
ALARGESUM
Cell Formulas
RangeFormula
C3,A39,A37,C32C3=FORMULATEXT(C4)
C4:C30C4=REPT(MOD(SEQUENCE(27)-1,9)+1,A2)
C33C33=ALARGESUM(C4#)
A33A33=LEN(C33)
A34A34=FORMULATEXT(A33)
A38A38=RIGHT(C33,4)
A40A40=SUM(--REPT(MOD(SEQUENCE(27)-1,9)+1,4))
Dynamic array formulas.
 
CM Lambda helper functions.xlsx
ABCDEFGHIJKL
1nr.chars
2254
3=REPT(MOD(SEQUENCE(27)-1,9)+1,A2)
411111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
522222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
633333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
744444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
855555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
966666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
1077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
1188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
1299999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
1311111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1422222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
1533333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
1644444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
1755555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
1866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
1977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
2088888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
2199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
2211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
2322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
2433333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
2544444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
2655555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
2766666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
2877777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
2988888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
3099999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
31lenghts
32check=ALARGESUM(C4#)
33#VALUE!#VALUE!
34=LEN(C33)
35
36sum check
37=RIGHT(C33,4)
38#VALUE!
39=SUM(--REPT(MOD(SEQUENCE(27)-1,9)+1,4))
40149985
41Note: for 254 chars will get an error
42
ALARGESUM
Cell Formulas
RangeFormula
C3,A39,A37,C32C3=FORMULATEXT(C4)
C4:C30C4=REPT(MOD(SEQUENCE(27)-1,9)+1,A2)
C33C33=ALARGESUM(C4#)
A33A33=LEN(C33)
A34A34=FORMULATEXT(A33)
A38A38=RIGHT(C33,4)
A40A40=SUM(--REPT(MOD(SEQUENCE(27)-1,9)+1,4))
Dynamic array formulas.
 
ALARGESUM is a recursive function that calls a recursive function (LARGESUM) that calls another recursive function (T_LSUM).
Though, the function is capable of adding 3063 numbers of 150 digits each.
Means that it does not matter how many recursive layers a function has, as long as, by design, they do not interfere.
CM Lambda helper functions.xlsx
ABC
1
2result LEN
3=LEN(C4)=ALARGESUM(C7#)
41541700666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666664966
5
6nr.chars=REPT(MOD(SEQUENCE(A10)-1,9)+1,A7)
7150111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
8222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
9nr.rows333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
103063444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
11555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
12666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
14888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
15999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
16111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
17222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
18333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
19444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
20555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
21666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
22777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
23888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
24999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
25111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
26222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
27333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
28444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
29555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
30666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
31777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
32888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
33999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
34111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
35222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
36333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
37444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
38555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
39666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
40777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
41888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
42999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
43111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
44222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
45333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
46444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
47555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
48666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
49777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
50888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
Sheet7
Cell Formulas
RangeFormula
A3,C6,C3A3=FORMULATEXT(A4)
A4A4=LEN(C4)
C4C4=ALARGESUM(C7#)
C7:C3069C7=REPT(MOD(SEQUENCE(A10)-1,9)+1,A7)
Dynamic array formulas.
 
CM Lambda helper functions.xlsx
ABC
1
2result LEN
3=LEN(C4)=ALARGESUM(C7#)
4#NUM!#NUM!
5
6nr.chars=REPT(MOD(SEQUENCE(A10)-1,9)+1,A7)
7150111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
8222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
9nr.rows333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
103064444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
11555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
12666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
14888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
15999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
ALARGESUM err
Cell Formulas
RangeFormula
A3,C6,C3A3=FORMULATEXT(A4)
A4A4=LEN(C4)
C4C4=ALARGESUM(C7#)
C7:C3070C7=REPT(MOD(SEQUENCE(A10)-1,9)+1,A7)
Dynamic array formulas.
 
Fresh new study regarding large numbers of operations. Initially inspired by Summary of my custom LAMBDAs for Large Numbers • Excel Ticker , this is my take on the matter.
My functions will cover the following operations, addition (positive numbers), subtraction, summing, (any numbers), multiplication, sumproduct, max, min, comparison
operators
, and not only for 2 numbers, we can perform these operations for entire huge arrays with very large numbers, single cell functions, no need for helper array spreadsheet constructions, do not call any other custom-made functions apart from a recursive one for addition and one for subtraction, do not even need the new lambda helper functions.
The challenge was to find a new super recursive efficient and fast concept that will never reach recursion limits.
To accomplish this, the new concept does not iterate by the numbers of rows or by the numbers of digits, which will imply many iterations and will run out of recursion resources quite fast. The new concept is able to handle arrays of hundreds of thousands of rows with numbers that can have thousands of digits with less than 10 recursive iterations. I have even built tools that count the number of iterations to prove that.
The only limit I have seen was the classic "Excel run out of resources...." message, never a #NUM error.
For example, these are the limits when it comes to adding large numbers. If we increase by 1 any of shown values will get the out of resources message.
First column represents max nr. of digits a number can have, second column represents nr. of rows (nr. of number values).
On third column we have values returned by a function I got with the help of charts trendlines functions. I chose a function that is quite accurate for values that are not close to the extremes,
y=5E+07*x^-0.994 where x: nr. of digits; y: nr. of rows (number values)

digitsrowsfunction estimation
40​
exceeds excel nr. rows
1277975​
50​
1048571​
1023750​
100​
536870​
514008​
200​
268435​
258075​
500​
107374​
103799​
1000​
53687​
52116​
20000​
2684​
2653​
32766​
10​
1624​
40000​
exceeds nr. chars in a cell
1332​

As we see, the numbers with 40 digits we can add will exceed excel rows real estate 1,048,576, that's why I was not able to get an accurate value with my tests. Same for nr. of chars a cell can take, 32,767.
And if you think that these numbers are big, please check this amazing instructive and funny YT: Neil deGrasse Tyson Explains Big Numbers

Chapter 1. ADDition

ALADD(a)
Array Large numbers ADDition. Calls recursive tool function T_LA
a: vertical array of pozitive numbers (for 2D arrays we can use ALADD(AFLAT(a)) )
Note: numbers can be in general number format or, for numbers that exceed 15 digits, in string format, to avoid Excel changing to scientific (exponential) notation.
Even if scientific notation is a format façade, if we introduce a number that has 16 "9"'s , the last digit will be turned into a "0", compromising the accuracy of the results.
Excel Formula:
=LAMBDA(a,
    LET(l,LEN(a),m,MAX(l),
       u,MMULT(SEQUENCE(,ROWS(a))^0,--MID(REPLACE(a,1,0,REPT(0,m-l)),SEQUENCE(,m),1)),
      d,T_LA(u),
      CONCAT(FILTER(d,SEQUENCE(,COLUMNS(d))>=XMATCH(TRUE,d<>0)))
    )
)

T_LA(a) !!recursive!!
a: 1 row array of numbers ("a" is delivered to T_LA by first part of ALADD calculations)
Excel Formula:
=LAMBDA(a,
    LET(c,COLUMNS(a),l,LEN(a),m,MAX(l),r,SEQUENCE(m),s,SEQUENCE(,c+m-1)-r+1,
       u,MMULT(SEQUENCE(,m)^0,--IFERROR(INDEX(MID(REPLACE(a,1,0,REPT(0,m-l)),r+SEQUENCE(,c)^0-1,1),r,IF(s<1,-1,s)),0)),
       IF(AND(LEN(u)=1),u,T_LA(u))
    )
)
LARGE NR OP.xlsx
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAE
1Chapter 1. ADDition. Part 1. Conceptsteps
21. summing by col
3insterting leading 0's and splitting8199117126126126126126126126126
49999999999999999999999
59999999999099999999992. inserting leading 0's
699999999900999999999081099117126126126126126126126126
79999999999999999999999
899999999999999999999993. extracting 1st digits as 1st row, 2nd digits as 2nd row + offsetting 1 col to the right, etc…
99999999999999999999999(done more or less manually to demonstrate the concept)
10999999999999999999999900111111111
1199999999990999999999989122222222
129999999990099999999919766666666
139999999900099999999
1499999999999999999999994. summing bycol again (BYCOL can be used but I have used MMULT instead across all functions)
1599999999999999999999990811111099999986
169999999999999999999999
1799999999999999999999995.if the row array from step 4. has more than one digit we loop the process from 2.
18
192.100081111100909090909090806
20
213.10011100000000
220811099999986
23
244.100922099999986
25
265.1row array 4.1, this time, only 1 digit=> we exit the loop
27
286.concat row array from 4.1 ignoring first 0's, this will be the sum result
29922099999986
30check
31=ALADD(A4:A17)=SUM(A4:A17)&""
32922099999986check922099999986had to use &"" trick to avoid exponantial format
33for accurate results we always have to work =SUM(A4:A17)
34with string representations of numbers9.221E+11
35
ALADD 1
Cell Formulas
RangeFormula
P3:Z3P3=MMULT(SEQUENCE(,ROWS(A4:A17))^0,--C4#)
C4:M17C4=MID(REPLACE(A4:A17,1,0,REPT(0,MAX(LEN(A4:A17))-LEN(A4:A17))),SEQUENCE(,MAX(LEN(A4:A17))),1)
P6:Z6P6=REPLACE(P3#,1,0,REPT(0,MAX(LEN(P3#))-LEN(P3#)))
P19:AB19P19=REPLACE(P15:AB15,1,0,REPT(0,MAX(LEN(P15:AB15))-LEN(P15:AB15)))
P31,P33,A31P31=FORMULATEXT(P32)
A32A32=ALADD(A4:A17)
P32P32=SUM(A4:A17)&""
P34P34=SUM(A4:A17)
Dynamic array formulas.
 
Excel representation of large numbers.
LARGE NR OP.xlsx
ABCDEFGH
1Excel behavior, large numbers.
2to "force"
3numbers as numbersstring representation
4
511 digits number=LEN(A6)=A6&""=LEN(E6)
699999999999119999999999911
7
8beneath the format,
912 digits numberstill 12 digits
10999999999999=LEN(A11)=A11&""=LEN(E11)
111E+121299999999999912
12excel sets scientific format
13beneath the format,
1415 digits numberstill 15 digits
15999999999999999=LEN(A16)=A16&""=LEN(E16)
161E+151599999999999999915
17
18
19nr. digits > 15beneath the format,
2016 digits numberstill 16 digits
219999999999999999=LEN(A22)=A22&""=LEN(E22)
221E+1616999999999999999016
23beneath the format,
2417 digits numberstill 17 digits
259999999999999999=LEN(A26)=A26&""=LEN(E26)
261E+17179999999999999990017
27
28Excel replaces last len(n)-15 digits of a large number with 0's
29For accurate results, numbers that exceed 15 digits
30should be introduced as strings
31
ALADD 2
Cell Formulas
RangeFormula
C5,G25,E25,C25,G21,E21,C21,G15,E15,C15,G10,E10,C10,G5,E5C5=FORMULATEXT(C6)
C6,G26,C26,G22,C22,G16,C16,G11,C11,G6C6=LEN(A6)
E6,E26,E22,E16,E11E6=A6&""
 
Best method when it comes to inserting leading 0's (an important part of whole concept that can "level" numbers used as strings like usual numbers do).
TEXT vs REPLACE, and why I have used REPLACE against TEXT which is a far simpler construction. Realized that since I have first designed LARGESUM and I think it is worth sharing, it makes a significant difference when accuracy is the main goal.
LARGE NR OP.xlsx
ABCDEFGHIJ
1 Cosmetics. TEXT vs REDUCE
2Inserting leading 0's to an array of numbers and/or string numbers (input nr. as strings with an "invisible" leading ' )
3
4array of numbers and =MAX(C8#)1st method TEXT2nd method REDUCE
5numbers as strings17 m =text(a,rept(0,m)) =replace(a,1,0,rept(0,m-l))
6sample
7=LEN(A8:A16)=TEXT(A8:A16,REPT(0,C5))=LEN(E8#)=REPLACE(A8:A16,1,0,REPT(0,C5-C8#))
88976875834 a10 l000000089768758341700000008976875834
98760604836511000000876060483651700000087606048365
105.36547E+1112000005365466865431700000536546686543
112.64866E+1415002648658865675871700264865886567587
1276568807443412000007656880744341700000765688074434
13165879430981213000016587943098121700001658794309812
1498765098319897615009876509831989761700987650983198976
15597608721354365616?0597608721354365017?05976087213543656
166546565675543425417?6546565675543420017?65465656755434254
17
18=ALADD(A8:A16)=ALADD(E8#)=ALADD(I8#)
1972697318450739461?72697318450739401?72697318450739461
20
21Notes:
22ALADD can add numbers on both formats.
23Formating numbers with TEXT should be used with care in general.
24Old LARGESUM uses REPLACE also.
25
ALADD 3
Cell Formulas
RangeFormula
C4,I18,E18,A18,E7,G7,I7,C7C4=FORMULATEXT(C5)
C5C5=MAX(C8#)
C8:C16C8=LEN(A8:A16)
E8:E16E8=TEXT(A8:A16,REPT(0,C5))
G8:G16G8=LEN(E8#)
I8:I16I8=REPLACE(A8:A16,1,0,REPT(0,C5-C8#))
A19A19=ALADD(A8:A16)
E19,I19E19=ALADD(E8#)
Dynamic array formulas.
 
Chapter 1. ADDition. Part 2. The functions. ALADD first part (before calling T_LA)
ALADD has 3 parts, first part, before calling T_LA, will deliver to T_LA the row of sums "u" array, second part, the T_LA itself that will initiate the recursive process until will get a row of single digits values, and third part, after T_LA, that will filter out the leading columns with 0's and will concat the remaining columns as final result of addition.
LARGE NR OP.xlsx
ABCDEFGHIJKLMNOPQRS
1Chapter 1. ADDition. Part 2. The functions. ALADD first part (before calleng T_LA)
2 =LAMBDA(a,LET(l,LEN(a),m,MAX(l),u,MMULT(SEQUENCE(,ROWS(a))^0,--MID(REPLACE(a,1,0,REPT(0,m-l)),SEQUENCE(,m),1)), ….
3
4lenmax(len)inserting leading 0's and splitting
5a=LEN(A6:A18)=MAX(C6#)=--MID(REPLACE(A6:A18,1,0,REPT(0,E6-C6#)),SEQUENCE(,E6),1)
6999995 l5 m99999
799999599999summing bycol
89999409999=MMULT(SEQUENCE(,ROWS(A6:A18))^0,G6#)
99999959999999108117117117 u
1099999599999
1199999599999
1299999599999
1399999599999
14999300999
1599999599999
1699999599999
1799999599999
1899999599999
19
20
ALADD 4
Cell Formulas
RangeFormula
C5,E5,G5,M8C5=FORMULATEXT(C6)
C6:C18C6=LEN(A6:A18)
E6E6=MAX(C6#)
G6:K18G6=--MID(REPLACE(A6:A18,1,0,REPT(0,E6-C6#)),SEQUENCE(,E6),1)
M9:Q9M9=MMULT(SEQUENCE(,ROWS(A6:A18))^0,G6#)
Dynamic array formulas.
 
Chapter 1. ADDition. Part 3. The functions. T_LS(a), middle part of ALSUM …d,T_LA(u)…
=LAMBDA(a,LET(c,COLUMNS(a),l,LEN(a),m,MAX(l),r,SEQUENCE(m),s,SEQUENCE(,c+m-1)-r+1,
u,MMULT(SEQUENCE(,m)^0,--IFERROR(INDEX(MID(REPLACE(a,1,0,REPT(0,m-l)),r+SEQUENCE(,c)^0-1,1),r,IF(s<1,-1,s)),0)),
IF(AND(LEN(u)=1),u,T_LA(u))))

Note: As we already know, REDUCE can substitute any recursive function algorithm with ease, for a predetermined nr. of iterations, but, when the iterations are triggered only if a certain condition is not met (exit condition), it is far more intuitive and elegant to use classic recursive concept, of course, if we are positive that recursion limits will not affect the calculations performance.
LARGE NR OP.xlsx
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1Chapter 1. ADDition. Part 3. The functions. T_LS(a), middle part of ALSUM …d,T_LA(u)…
2*inserting leading 0's sum rowdigits extraction using offset array
3a (u from previous post)=REPLACE(B4:F4,1,0,REPT(0,B16-B12#))=--IFERROR(INDEX(H15#,B19#,IF(H26#<1,-1,H26#)),0)
499108117117117 a0991081171171170111100
50901110
6nr. columscreating index pattern for0098777
7=COLUMNS(B4:F4)extracting 1st digits, 1st row, 2nd row 2nd digits,etc
85 c=B19#+SEQUENCE(,B8)^0-1summing bycol
911111=MMULT(SEQUENCE(,B16),R4#)
10len222220192827242321 u
11=LEN(B4:F4)33333
1223333 lexit condition, cheks if AND(LEN(X10#)=1)
13extracting 1st digits, 1st row, 2nd row 2nd digits,etc* if TRUE, exits, IF FALSE restarts the calculation *
14max(len)=MID(H4#,H9#,1)
15=MAX(B12#)01111final result delivered by T_LS
163 m90111=T_LA(B4:F4)
179877701110987
18=SEQUENCE(B16)
191 roffsetting each row 1 clm to the right
202nr. clms of offset array
213=B8+B16-1
227
23
24clms index pattern for offset array
25=SEQUENCE(,H22)-B19#+1
261234567 s
270123456
28-1012345
29
ALADD 5
Cell Formulas
RangeFormula
H3,H25,H21,B18,R16,B15,H14,B11,R9,H8,B7,R3H3=FORMULATEXT(H4)
H4:L4H4=REPLACE(B4:F4,1,0,REPT(0,B16-B12#))
R4:X6R4=--IFERROR(INDEX(H15#,B19#,IF(H26#<1,-1,H26#)),0)
B8B8=COLUMNS(B4:F4)
H9:L11H9=B19#+SEQUENCE(,B8)^0-1
R10:X10R10=MMULT(SEQUENCE(,B16),R4#)
B12:F12B12=LEN(B4:F4)
H15:L17H15=MID(H4#,H9#,1)
B16B16=MAX(B12#)
R17:Y17R17=T_LA(B4:F4)
B19:B21B19=SEQUENCE(B16)
H22H22=B8+B16-1
H26:N28H26=SEQUENCE(,H22)-B19#+1
Dynamic array formulas.
 

Forum statistics

Threads
1,223,929
Messages
6,175,453
Members
452,643
Latest member
gjcase

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top