Tính tổng các chữ số

Liên hệ QC

namquoc29

Thành viên mới
Tham gia
9/4/08
Bài viết
6
Được thích
0
Nhờ diễn đàn chỉ giùm cách tính tổng các chữ số, Ví dụ: 35768 tính tổng các chữ số đó. Cảm ơn
 
Công thức này mình nhập bị báo lỗi, không biết có ai đã thử chưa ?
Bạn xem lại dấu trong cú pháp nhé, có lẽ hệ thống của bạn khác với hệ thống của người gửi công thức . Bạn thay dấu , thành ; xem sao.
 
Lần chỉnh sửa cuối:
Cảm ơn oishi , BNTT , dat_butmuc đã dành thời gian, minh download theo link của dat_butmuc xuống chạy thử. cái này thì chạy tốt, đúng theo yêu cầu của mình rôi.

Hiện giờ mình cần thêm 2 tính năng:

1/ ví dụ như dãy số 082215605323 thì số 0 đầu tiên sẽ tự bỏ đi (cái này excel tự làm rồi ) , cái mình cần thêm là nếu dãy số có 0 nằm trong dãy số khác vị trí đầu tiên thì công là 10 chứ không phải là 0. vd: 082215605323 = 0 (bỏ) +8+2+2+1+5+6+ 10 (số 0 ) +5+3+2+3 = 37.

2/ vấn đề thứ 2 của mình là: sau khi cộng xong, như ví dụ trên có kết quả là 37 thì sẽ hiện ra dòng chữ " kết quả là ba mươi bảy"

Mong nhận được sự hỗ trợ của mọi người.

 
Hiện giờ mình cần thêm 2 tính năng:

1/ ví dụ như dãy số 082215605323 thì số 0 đầu tiên sẽ tự bỏ đi (cái này excel tự làm rồi ) , cái mình cần thêm là nếu dãy số có 0 nằm trong dãy số khác vị trí đầu tiên thì công là 10 chứ không phải là 0. vd: 082215605323 = 0 (bỏ) +8+2+2+1+5+6+ 10 (số 0 ) +5+3+2+3 = 37.

2/ vấn đề thứ 2 của mình là: sau khi cộng xong, như ví dụ trên có kết quả là 37 thì sẽ hiện ra dòng chữ " kết quả là ba mươi bảy"

Mong nhận được sự hỗ trợ của mọi người.
Vấn đề thứ nhất:
- Kết quả = 47 chứ bạn
- Công thức cũ cộng thêm với công thức này: 10*(LEN(1*A2)-LEN(SUBSTITUTE(1*A2,0,"")))
-
Công thức này đếm xem trong chuổi có bao nhiêu số 0 (trừ số 0 bên trái) rồi nhân với 10
Vấn đề thứ hai:
- Phải dùng VBA bạn à! Hàm đọc số thành chữ
 

File đính kèm

Vấn đề thứ nhất:
- Kết quả = 47 chứ bạn
- Công thức cũ cộng thêm với công thức này: 10*(LEN(1*A2)-LEN(SUBSTITUTE(1*A2,0,"")))
- Công thức này đếm xem trong chuổi có bao nhiêu số 0 (trừ số 0 bên trái) rồi nhân với 10

Dùng công thức như NDU là "ngon" nhất rồi, tuy nhiên cũng có thể thêm "kiểu" này nữa cho bạn tham khảo:
PHP:
=SUMPRODUCT(1*MID(SUBSTITUTE((--A2),"0","19"),ROW(INDIRECT("1:"&LEN(SUBSTITUTE((--A2),"0","19")))),1))

Số 19 trong công thức bạn có thể thay bằng 28, 37, .... miễn sao cho tổng 2 số đó =10
 
Vấn đề thứ nhất:
- Kết quả = 47 chứ bạn
- Công thức cũ cộng thêm với công thức này: 10*(LEN(1*A2)-LEN(SUBSTITUTE(1*A2,0,"")))
-
Công thức này đếm xem trong chuổi có bao nhiêu số 0 (trừ số 0 bên trái) rồi nhân với 10
Vấn đề thứ hai:
- Phải dùng VBA bạn à! Hàm đọc số thành chữ

Cảm ơn ndu96081631http://www.giaiphapexcel.com/forum/member.php?57544-dat_butmucdat_butmuc nhiều, vậy là vấn đề của mình đã được hơn 80% rồi. HIện giờ chỉ còn 1 yêu cầu cần thục hiện nữa là: sau khi nập 1 dãy số vào ô, nhận được kết quả (kết quả này chỉ chạy từ 1 đến 80) . Ví dụ: tính kết quả của tổng dãy số ra đươc = 69 thì chỉ cần hiện ra 1 dòng ghi là: kết quả là 69; tính kết quả của tổng dãy số ra đươc = 80 thì chỉ cần hiện ra 1 dòng ghi là: kết quả là 80; ...

Mong mọi người hỗ trợ.
 
Với công thức này nếu số cần Tổng là 80 phải cho ra kết quả là 8 chứ nhỉ? Nhưng lại ra là 18? Hoặc 1000 thành 31 v.v...???
PHP:
= SUMPRODUCT(1*MID(A17,ROW(INDIRECT("1:"&LEN(A17))),1))+10*(LEN(1*A17)-LEN(SUBSTITUTE(1*A17,0,"")))
 
To : Anh NDU
PHP:
=SUMPRODUCT(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))

Làm ra rồi thì thấy đơn giản nhưng thực sự rất tư duy, công thức hay quá.


</span></span>To : Tác giả
Mình tò mò quá không biết bài toán này có ứng dụng gì không nhỉ?
Cảm ơn oishi , BNTT , dat_butmuc đã dành thời gian, minh download theo link của dat_butmuc xuống chạy thử. cái này thì chạy tốt, đúng theo yêu cầu của mình rôi.

Hiện giờ mình cần thêm 2 tính năng:

1/ ví dụ như dãy số 082215605323 thì số 0 đầu tiên sẽ tự bỏ đi (cái này excel tự làm rồi ) , cái mình cần thêm là nếu dãy số có 0 nằm trong dãy số khác vị trí đầu tiên thì công là 10 chứ không phải là 0. vd: 082215605323 = 0 (bỏ) +8+2+2+1+5+6+ 10 (số 0 ) +5+3+2+3 = 37.

2/ vấn đề thứ 2 của mình là: sau khi cộng xong, như ví dụ trên có kết quả là 37 thì sẽ hiện ra dòng chữ " kết quả là ba mươi bảy"

Mong nhận được sự hỗ trợ của mọi người.
 
Cảm ơn ndu96081631http://www.giaiphapexcel.com/forum/member.php?57544-dat_butmucdat_butmuc nhiều, vậy là vấn đề của mình đã được hơn 80% rồi. HIện giờ chỉ còn 1 yêu cầu cần thục hiện nữa là: sau khi nập 1 dãy số vào ô, nhận được kết quả (kết quả này chỉ chạy từ 1 đến 80) . Ví dụ: tính kết quả của tổng dãy số ra đươc = 69 thì chỉ cần hiện ra 1 dòng ghi là: kết quả là 69; tính kết quả của tổng dãy số ra đươc = 80 thì chỉ cần hiện ra 1 dòng ghi là: kết quả là 80; ...

Mong mọi người hỗ trợ.

Bạn format lại các ô chứa công thức
Vào Format Cells -> Number -> Custom (Mục Type gõ: "Kết quả là "# ) -> OK
 
Con số mà biết nói "nhăng"
Thì thầy nhờ code hàm răng chẳng còn

hi hi...

Cám ơn Anh
 
Em cũng có dạng bài như trên nhưng rườm rà hơn một chút (vì chưa có ngay dãy số để tính tổng từ đầu
Ví dụ:
1. Phải dùng công thức join (nối) ta mới có được dãy số xxxxK3xxxxxP3
2. Em tham khảo hàm NDU (dùng hàm tách số) ta có: dãy 33
3. Em dùng công thức của anh NDU
=SUMPRODUCT(1*MID(Z6;ROW(INDIRECT("1:"&LEN(Z6)));1)) để tính dãy 33 = 3+ 3

như vậy em phải qua 2 cột phụ để làm bài trên (mặc dù đã xài code)

Rất mong các anh chị, hướng dẫn cách nào làm nhanh & gọn hơn

Em cám ơn
 

File đính kèm

Em cũng có dạng bài như trên nhưng rườm rà hơn một chút (vì chưa có ngay dãy số để tính tổng từ đầu
Ví dụ:
1. Phải dùng công thức join (nối) ta mới có được dãy số xxxxK3xxxxxP3
2. Em tham khảo hàm NDU (dùng hàm tách số) ta có: dãy 33
3. Em dùng công thức của anh NDU
=SUMPRODUCT(1*MID(Z6;ROW(INDIRECT("1:"&LEN(Z6)));1)) để tính dãy 33 = 3+ 3

như vậy em phải qua 2 cột phụ để làm bài trên (mặc dù đã xài code)

Rất mong các anh chị, hướng dẫn cách nào làm nhanh & gọn hơn

Em cám ơn
Công thức cho cell W6:
PHP:
=SUM(IF(D6:V6="",0,1*MID(D6:V6,2,20)))
Công thức mảng nha!
 
Em hiểu rồi
Anh làm tổng quát lấy maximum luôn là 20 kí tự (LEN)

Thanks Anh nhé
 
Tôi thử lại thì thấy nếu sau ký tự k hoặc p là một số lơn hơn 9 thì kết quả công thức của bạn và công thức của anh ndu khác nhau. Vậy không biết kết quả bạn muốn chính xác là như thế nào.
Công thức của anh ndu có thể rút gọn lại như sau:
Mã:
=SUM(1*(0&MID(D6:V6,2,20)))
Hoặc làm như thế này:
Mã:
=SUM(--REPLACE(D6:V6,1,1,0))
 
Web KT

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

Back
Top Bottom