Xin giúp đỡ hàm tính tổng pascal trong 1 ô

Liên hệ QC

Cô Bé Dễ Thương

Thành viên thường trực
Tham gia
30/9/16
Bài viết
223
Được thích
48
Giới tính
Nữ
Ví dụ:
39014
2915
106
16
7
- Lần lượt lấy 3+9, rồi lấy 9+0, tiếp 0+1, tiếp 1+4.Nếu lớn 10 thì chỉ lấy hàng đơn vị. Được số mới là: 2915
- Và lại liên tiếp 2+9=11 lấy hàng đơn vị được 1, tiếp 9+1=10 lấy 0,tiếp 1+5=6.Ta được số mới: 106
- Tiếp tục: 1+0=1, 0+6=6 Được số mớ là 16
- Tiếp tục: 1+6=7
Mọi người giúp mình hàm thực hiện công việc trên với.
 
Lần chỉnh sửa cuối:
Chép hàm sau vào code của bảng tính
Function SPascal(ss$) As Long
' Tiình tôÒng pascal
Dim lenth&, i&, tam$, s1$, s2$
lenth = Len(ss)
Do While lenth > 1
tam = "": s1 = Left(ss, 1)
For i = 2 To lenth
s2 = Mid(ss, i, 1)
tam = tam & ((Val(s1) + Val(s2)) Mod 10)
s1 = s2
Next
ss = tam
lenth = Len(ss)
Loop
SPascal = ss
End Function

Chú ý đối số trên ô nào đó phải không quá 15 chữ số. Còn nếu hơn thì phải định dạng ô đó là text (hoặc gõ dấu nháy đơn rồi nhập số).
 
chỉ ăn bằng các hàm excel ko dính vba gì cả có xử lý dc ko bạn
 
chỉ ăn bằng các hàm excel ko dính vba gì cả có xử lý dc ko bạn
Bạn dùng thử công thức này:

=IF(LEN(A1)>1,TEXT(SUMPRODUCT(MOD(MID(A1,ROW(INDIRECT("1:"&LEN(A1)-1)),1)+MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1),10)
*10^(LEN(A1)-ROW(INDIRECT("2:"&LEN(A1))))),REPT(0,LEN(A1)-1)),"")
 

File đính kèm

Bạn dùng thử công thức này:

=IF(LEN(A1)>1,TEXT(SUMPRODUCT(MOD(MID(A1,ROW(INDIRECT("1:"&LEN(A1)-1)),1)+MID(A1,ROW(INDIRECT("2:"&LEN(A1))),1),10)
*10^(LEN(A1)-ROW(INDIRECT("2:"&LEN(A1))))),REPT(0,LEN(A1)-1)),"")
Nhờ bạn xử lý giúp.Mình thử với số là có độ dài rất lớn 40 số trở lên thì hàm không nhảy đúng nữa.Có đến 1 nửa dãy số biến thành số 0.
Bạn làm giúp làm cho hàm xử lý với số có độ dài rất lớn 40 số trở lên giúp mình với bạn.
 
Nhiều hơn 15 số không dùng công thức được, mà phải dùng hàm tự tạo.(VBA)
 
Web KT

Bài viết mới nhất

Back
Top Bottom