Tính tổng các chữ số (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

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))
 
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))

Em quên mất cách 1 của em chỉ đúng với số nhỏ hơn 9 thôi (vì là công dãy số)
ví dụ: với K11 & K8
cách 1: 118 = 1+1+8 = 10 (bị sai)
cách 2: 11+8 = 19 (nghỉ 19 tiết)

Thực tế số tiết học trong buổi sẽ khó > 10 nên em tạm thời làm như vậy.

Em xin được hỏi, em thử công thức này sao nó không ra nhỉ?
{=SUM(IF(D11:N11<>"";RIGHT(D11:N11;1);0))}


p.s: em đang nghiên cứu 2 công thức của a Hữu Thắng. Có j không hiểu e sẽ hỏi tiếp
 
Tôi muốn mọi người chỉ bảo thêm một chút nữa: Nếu tính tổng các chữ số cho kết quả > hoặc = 10 thì lại tiếp tục tính tổng các chữ số trong tổng mới đó cho tới khi tổng cuối cùng có giá trị <10 thì dừng lại.
VD: tính tổng các chữ số của 12345: 1+2+3+4+5 = 15 > 10, ta lại tính tổng các chữ số của 15: 1+5=6, và lấy giá trị cuối cùng là 6.
 
Tôi muốn mọi người chỉ bảo thêm một chút nữa: Nếu tính tổng các chữ số cho kết quả > hoặc = 10 thì lại tiếp tục tính tổng các chữ số trong tổng mới đó cho tới khi tổng cuối cùng có giá trị <10 thì dừng lại.
VD: tính tổng các chữ số của 12345: 1+2+3+4+5 = 15 > 10, ta lại tính tổng các chữ số của 15: 1+5=6, và lấy giá trị cuối cùng là 6.

Giả sử số bạn gõ tại A1
Công thức bạn cần là: =IF(A1=0,0,MOD(A1-1,9)+1)
Vậy thôi
 
Nếu chưa nhập dữ liệu thì ô gõ công thức sẽ hiển thị #REF!. Sửa lỗi này thế nào vây?
 

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

Back
Top Bottom