Giúp đỡ lấy tổng là một chữ số của chữ số có nhiều chữ số trong 1 ô Excel! (1 người xem)

Liên hệ QC

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

vietnamvn

Thành viên mới
Tham gia
2/10/22
Bài viết
25
Được thích
9
Do không viết được hàm Excel nhờ các thầy các bạn giúp đỡ cho hàm excel với trường hợp sau:
- Ô A1 có giá trị 123, ô B1 có giá trị 109. Làm cách nào để tính tổng là 1 chữ số cho 2 ô A1 và B1.
- Ví dụ:
A1 = 123 => 1+2+3 = 6
B1 = 109 => 1+ 0 + 9 = 10 => 1 + 0 = 1
Mong nhận được sự giúp đỡ!
 
Do không viết được hàm Excel nhờ các thầy các bạn giúp đỡ cho hàm excel với trường hợp sau:
- Ô A1 có giá trị 123, ô B1 có giá trị 109. Làm cách nào để tính tổng là 1 chữ số cho 2 ô A1 và B1.
- Ví dụ:
A1 = 123 => 1+2+3 = 6
B1 = 109 => 1+ 0 + 9 = 10 => 1 + 0 = 1
Mong nhận được sự giúp đỡ!
Thử công thức :
Mã:
=MOD(A1-1,9)+1
 
Do không viết được hàm Excel nhờ các thầy các bạn giúp đỡ cho hàm excel với trường hợp sau:
- Ô A1 có giá trị 123, ô B1 có giá trị 109. Làm cách nào để tính tổng là 1 chữ số cho 2 ô A1 và B1.
- Ví dụ:
A1 = 123 => 1+2+3 = 6
B1 = 109 => 1+ 0 + 9 = 10 => 1 + 0 = 1
Mong nhận được sự giúp đỡ!
=Mod (A1 - 1,9 ) + 1
Hahaha, ...
 
Test thấy đúng. Nhưng công nhận mạnh dữ.
Nhưng vẫn ghê ghê. Nhờ bác cho 1 công thức nữa tường minh dựa vào hàm Len đi ạ!
 
Công thức quá hay và bản thân mình tư duy toán học không ổn nên không chứng minh được. Cái này vẫn khúc mắc và chờ tin từ anh chị GPE.
Em muốn hỏi thêm 1 hàm để tính tổng số nút của sim điện thoại được không ạ?
VD: 0912345678 = 0+9+1+2+3+4+5+6+7+8 = 45 (5 nút).
 
Công thức quá hay và bản thân mình tư duy toán học không ổn nên không chứng minh được. Cái này vẫn khúc mắc và chờ tin từ anh chị GPE.
Em muốn hỏi thêm 1 hàm để tính tổng số nút của sim điện thoại được không ạ?
VD: 0912345678 = 0+9+1+2+3+4+5+6+7+8 = 45 (5 nút).
45 thì sao lại 5 nút nhỉ? Không phải 4+5 tiếp à bạn
 
45 thì sao lại 5 nút nhỉ? Không phải 4+5 tiếp à bạn
Tùy quan điểm mỗi người sẽ xem số nút thế nào thôi anh ạ. Cái này nó thuộc về quan điểm mỗi người thôi. Vì đã có công thức trên rồi, thì cách này là 1 cách hiểu khác khi tính tổng. VD oánh 3 cây thì 128 nó là 1 nút chứ không phải 2 (mở rộng tí chứ không có cờ bạc gì bác nhé).
Em thì không tìm được hàm để tính được kết quả, còn VBA thì các anh chị đã có rồi. Cái em muốn tìm hiểu ở đây không phải là kết quả mà lý thuyết toán học e google nãy giờ mà chưa ra được cái hàm ngắn gọn như của bác. Bái phục.
 
Công thức quá bất ngờ luôn bạn nhỉ? nhờ bác @Nhattanktnn chứng minh thêm chút chỗ này được không ạ?
Mọi số đều được viết dưới dạng tổng các chữ số của nó cộng với một số chia hết cho 9.
Ví dụ:
Ta có: 594 = 5*100 + 9*10 + 4
= 5*(99+1) + 9*(9+1) + 4
= 5*11*9 + 5 + 9*9 + 9 + 4
= (5 + 9 + 4) + ( 5*11*9 + 9*9 )
= 18 + ( 5*11*9 + 9*9 )
= 1*(9+1) + 8 + ( 5*11*9 + 9*9 )
= 1 + 8 + (1*9 + 5*11*9 + 9*9 )
= 9 + (1*9 + 5*11*9 + 9*9 )
= (tổng các chữ số) + (số chia hết cho 9)
Vậy mod số này với 9 = 0
Để loại bỏ 0, không chạy từ 0-8 mà từ 1-9 thì số đó phải trừ 1, lấy phần dư mới cộng 1 sau

Hơi khó hiểu nhỉ :D
Bài đã được tự động gộp:

Tùy quan điểm mỗi người sẽ xem số nút thế nào thôi anh ạ. Cái này nó thuộc về quan điểm mỗi người thôi. Vì đã có công thức trên rồi, thì cách này là 1 cách hiểu khác khi tính tổng. VD oánh 3 cây thì 128 nó là 1 nút chứ không phải 2 (mở rộng tí chứ không có cờ bạc gì bác nhé).
Em thì không tìm được hàm để tính được kết quả, còn VBA thì các anh chị đã có rồi. Cái em muốn tìm hiểu ở đây không phải là kết quả mà lý thuyết toán học e google nãy giờ mà chưa ra được cái hàm ngắn gọn như của bác. Bái phục.
Cái này là bạn lấy số cuối à?
Mã:
=MOD(SUMPRODUCT(--MID(A1,ROW(1:10),1)),10)
Vì sđt chiều dài là 10 số nên 1:10 nhé, còn số bất kỳ thì phải sửa
 
Lần chỉnh sửa cuối:
Mọi số đều được viết dưới dạng tổng các chữ số của nó cộng với một số chia hết cho 9.
Ví dụ:
Ta có: 594 = 5*100 + 9*10 + 4
= 5*(99+1) + 9*(9+1) + 4
= 5*11*9 + 5 + 9*9 + 9 + 4
= (5 + 9 + 4) + ( 5*11*9 + 9*9 )
= 18 + ( 5*11*9 + 9*9 )
= 1*(9+1) + 8 + ( 5*11*9 + 9*9 )
= 1 + 8 + (1*9 + 5*11*9 + 9*9 )
= 9 + (1*9 + 5*11*9 + 9*9 )
= (tổng các chữ số) + (số chia hết cho 9)
Vậy mod số này với 9 = 0
Để loại bỏ 0, không chạy từ 0-8 mà từ 1-9 thì số đó phải trừ 1, lấy phần dư mới cộng 1 sau
Giống công thức đổi cơ số bất kỳ về cơ số 10. Ra được công thức này chắc bác chuyên làm việc với toán quá.
Có số ở số 10 là : 594 thì nó thực chất là số 5*10^2 + 9*10^1 + 4*10^0 = 500 + 90 + 4 = 594
 
Giống công thức đổi cơ số bất kỳ về cơ số 10. Ra được công thức này chắc bác chuyên làm việc với toán quá.
Mèo mù vớ được cá rán ý. Làm nhiều thì biết tí tí thôi. Dạng này trên GPE có mấy bài rồi bạn
 
Mọi số đều được viết dưới dạng tổng các chữ số của nó cộng với một số chia hết cho 9.
Ví dụ:
Ta có: 594 = 5*100 + 9*10 + 4
= 5*(99+1) + 9*(9+1) + 4
= 5*11*9 + 5 + 9*9 + 9 + 4
= (5 + 9 + 4) + ( 5*11*9 + 9*9 )
= 18 + ( 5*11*9 + 9*9 )
= 1*(9+1) + 8 + ( 5*11*9 + 9*9 )
= 1 + 8 + (1*9 + 5*11*9 + 9*9 )
= 9 + (1*9 + 5*11*9 + 9*9 )
= (tổng các chữ số) + (số chia hết cho 9)
Vậy mod số này với 9 = 0
Để loại bỏ 0, không chạy từ 0-8 mà từ 1-9 thì số đó phải trừ 1, lấy phần dư mới cộng 1 sau

Hơi khó hiểu nhỉ :D
Bài đã được tự động gộp:


Cái này là bạn lấy số cuối à?
Mã:
=MOD(SUMPRODUCT(--MID(A1,ROW(1:10),1)),10)
Vì sđt chiều dài là 10 số nên 1:10 nhé, còn số bất kỳ thì phải sửa
Bái phục bác. Rất cặn kẽ, dễ hiểu.
Ngẫm lại thấy tư duy toán học mình quá kém.
Cảm ơn bác.
 
Nhưng mà chắc vẫn hơi khó hiểu, để mình nói lại xem dễ hiểu hơn không:
Giả sử có số bất kỳ abcd
Ta luôn có: abcd = a*1000 + b*100 + c*10 + d
mà 10,100,1000 thì luôn thể hiện bằng dạng 9+1,hay 99+1,...
mà 9, 99, 999 luôn chia hết cho 9
vì thế khi lấy phép dư với 9, chỉ còn lại a + b + c + d
Nếu a + b + c + d = ef vẫn lớn hơn 9 thì ef lại được biểu diễn thành e*10 + f rồi lại lại lặp kiểu đệ quy như trên. Cuối cùng nó cũng ra tổng các con số thôi
 
Trên bác phân tích thừa số là dễ hiểu rồi bác ạ. Cái e nể ở đây là bác dùng hàm ngắn gọn mà nói thật sẽ chẳng bao giờ e nghĩ ra được cả. Lúc mà cộng số sim, 10 số là e cho 10 cột phụ, 11 số 11 cột và cộng lại. Quá chán luôn, sau có VBA nhưng lúc đấy e cũng chọn xong số rồi. :wallbash: :wallbash: :wallbash:
 
Trên bác phân tích thừa số là dễ hiểu rồi bác ạ. Cái e nể ở đây là bác dùng hàm ngắn gọn mà nói thật sẽ chẳng bao giờ e nghĩ ra được cả. Lúc mà cộng số sim, 10 số là e cho 10 cột phụ, 11 số 11 cột và cộng lại. Quá chán luôn, sau có VBA nhưng lúc đấy e cũng chọn xong số rồi. :wallbash: :wallbash: :wallbash:
Nãy quên chứ đúng ra chúng ta nên trích dẫn khi nói chuyện để đối phương có thông báo, còn không nó 'im ru' haha.
Rất vui vì công thức giúp đỡ được bạn!
 
Nãy quên chứ đúng ra chúng ta nên trích dẫn khi nói chuyện để đối phương có thông báo, còn không nó 'im ru' haha.
Rất vui vì công thức giúp đỡ được bạn!
E định thôi mà có chỗ vẫn chưa hiểu: MOD(SUMPRODUCT(--MID(A3;ROW($1:$10);1));10).
E tưởng --MID là thừa dấu "-" nên xóa đi nhưng kết quả sai, phải giữ nguyên mới đúng.
E chưa hiểu cú pháp này, bác chỉ giúp e với.
 
E định thôi mà có chỗ vẫn chưa hiểu: MOD(SUMPRODUCT(--MID(A3;ROW($1:$10);1));10).
E tưởng --MID là thừa dấu "-" nên xóa đi nhưng kết quả sai, phải giữ nguyên mới đúng.
E chưa hiểu cú pháp này, bác chỉ giúp e với.
Mình sẽ vui hơn khi bạn sửa "E" thành "em" hoặc "mình" cũng được
Kết quả hàm mid là dạng chuỗi, nên không sum được. Phải "--" hoặc +0 hoặc *1 để ép chuỗi thành số mới tính tổng được. Còn mod với 10 chắc bạn đã hiểu
 
Vâng bác, em hiểu rồi. Rút kinh nghiệm từ từ, thói quen xưng hô nên lúc nhớ lúc không bác ạ.
 
Nhưng mà chắc vẫn hơi khó hiểu, để mình nói lại xem dễ hiểu hơn không:
Giả sử có số bất kỳ abcd
Ta luôn có: abcd = a*1000 + b*100 + c*10 + d
mà 10,100,1000 thì luôn thể hiện bằng dạng 9+1,hay 99+1,...
mà 9, 99, 999 luôn chia hết cho 9
vì thế khi lấy phép dư với 9, chỉ còn lại a + b + c + d
Nếu a + b + c + d = ef vẫn lớn hơn 9 thì ef lại được biểu diễn thành e*10 + f rồi lại lại lặp kiểu đệ quy như trên. Cuối cùng nó cũng ra tổng các con số thôi
Em xin giải thích thêm về công thức của anh:
CẤU TRÚC HÀM MOD :
=MOD(số bị chia, số chia)=số dư
1. Nếu số bị chia < số chia => số dư = số bị chia
2. Nếu số bị chia > số chia

+ Số bị chia KHÔNG chia hết cho số chia
- Tại sao ta phải dùng SỐ CHIA là 9, mà không phải là 2,3,4,5,6,7,8 ?
- Ta đã biết rằng 1 số chia hết cho 9 thì tổng các chữ số của 1 số đó phải chia hết cho 9
- Giả sử 1 số có 3 chữ số ABC, ta chuyển đổi thành cơ số 10 như sau : 100*A+10*B+C
- Như vậy số có 3 chữ số ABC kia phải có tổng (A+B+C) chia hết cho 9. Nếu tổng 3 số (A+B+C) KHÔNG chia hết cho 9 thì số dư sẽ là tổng các số này
Nếu A+B+C > 9 thì số dư sẽ là A+B+C-9
+ Nếu số bị chia CHIA HẾT số chia => số dư = 0 ( Trường hợp này trong công thức số bị chia phải trừ 1, sau khi chia cho 9 sẽ cộng thêm 1 )

Như ví dụ trên :
=MOD(123-1,9)+1=1+2+3=6
=MOD(109-1,9)+1=1+0+9-9=1
 
Mọi số đều được viết dưới dạng tổng các chữ số của nó cộng với một số chia hết cho 9.
Ví dụ:
Ta có: 594 = 5*100 + 9*10 + 4
= 5*(99+1) + 9*(9+1) + 4
= 5*11*9 + 5 + 9*9 + 9 + 4
= (5 + 9 + 4) + ( 5*11*9 + 9*9 )
= 18 + ( 5*11*9 + 9*9 )
= 1*(9+1) + 8 + ( 5*11*9 + 9*9 )
= 1 + 8 + (1*9 + 5*11*9 + 9*9 )
= 9 + (1*9 + 5*11*9 + 9*9 )
= (tổng các chữ số) + (số chia hết cho 9)
Vậy mod số này với 9 = 0
Để loại bỏ 0, không chạy từ 0-8 mà từ 1-9 thì số đó phải trừ 1, lấy phần dư mới cộng 1 sau

Hơi khó hiểu nhỉ :D
...
Cách chứng mình:
Theo toán Số Học (lớp 9-11, tùy theo thế hệ học của bạn)
ab = 10a + b = 9a + a + b ==> đem chia cho 9 thì số dư là a+b
Vì vậy, số dư của số ab khi đem chia cho 9 là tổng a+b
Đem thuật toán diễn giải quy nạp (induction), bạn chứng mình rằng nó đúng cho i = 1, và nếu đúng cho i thì cũng đúng cho i+1, cuối cùng bạn có nó đứng cho tất cả n>=1

Đây là bài toán Số Học (Arithmetic). Người nào đem so sánh với bài toán tính hệ (radix) thuôc về Đại Số (Algebra) là so sánh khập khiễng, không có căn bản toán.
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Do chứng minh hôm trước của tôi thiếu điều kiện đủ để công thức đúng. Nên tôi đã chứng minh lại bên dưới.

Chứng minh công thức P₍ₛ₎ = (s - 1) ≡ 9 + 1 tìm được tổng là một chữ số của số nguyên lớn hơn 0 có một hoặc nhiều chữ số.
(≡) là dấu chia lấy dư


Ví dụ:
Với số 26876:
Tính tổng: 2+6+8+7+6 = 29 = 2+9 = 11 = 1+1 = 2
Và tính với công thức (26876 - 1) ≡ 9 + 1 kết quả cũng là 2
Cần chứng minh công thức luôn đúng với mọi số nguyên lớn hơn 0.

Chứng minh:


Gọi A là tập số nguyên {1,2,...,9}

Gọi P₍ₛ₎ là tổng là một chữ số của số có nhiều chữ số.
Dựa vào công thức P₍ₛ₎ = (s-1) ≡ 9 + 1:

Với s > 0, thì s - 1 luôn luôn >= 0, nên P(s) € A

Gọi a1, a2, a3, ..., an là các chữ số trong một số, giá trị thuộc tập {0,1,2,...,9}.
Gọi s là số có 1 hoặc nhiều chữ số.
---------------------------------------------------------------------------------------------------
Ta có công thức tổng quát của s:

s = a1*10⁰ + a2*10¹ + a3*10² + ... + an*10ⁿ⁻¹
<=> s = a1 + a2*10 + a3*10² + ... + an*10ⁿ⁻¹
<=> s = a1 + a2 + a2*(10¹-1) + a3 + a3*(10²-1) + ... + an + an*(10ⁿ⁻¹-1)
<=> s = a1 + a2 + a3 + ... + an + a2*9 + a3*99 + ... + an*(10ⁿ⁻¹-1)

Gọi b là giá trị biểu thức a2*9 + a3*99 + ... + an*(10ⁿ⁻¹-1), dựa vào dấu hiệu chia hết cho 9 thì b luôn luôn chia hết cho 9.

---------------------------------------------------------------------------------------------------
Gọi Cₙ là tổng của n các số, thì các giá trị lần lượt nhận được là:


CₙTổng các sốGiá trị
Ca10 → 1∗10−1 = 9∗1
Ca1 + a20 → 2∗10−2= 9∗2
Ca1 + a2 + a30 → 3∗10−3= 9∗3
Ca1 + a2 + a3 + ... + an0 → n∗10−n= 9∗n


Cₙ = a1 + a2 + a3 + ... + an
<=> Cₙ = a1 + a2*10 + a3*10² + ... + an*10ⁿ⁻¹ - a2*9 - a3*99 - ... - an*(10ⁿ⁻¹-1)
<=> Cₙ = s - b
Rút ra được kết luận [1]: khi s mất đi b giá trị thì ta nhận được 1 tổng các chữ số

[2] Khi n = 1, thì Cₙ € A, s = Cₙ, P₍ₛ₎ = (s-1) ≡ 9 + 1 luôn đúng.

---------------------------------------------------------------------------------------------------
Với giá trị s:

screenshot.png
Gọi Zₘ là tổng của Cₙ biểu thức của giá trị s, để có được [3] giá trị Zₘ € A thì:
s = b + bZ₀ + bZ₁ + bZ₂ + ... + bZₘ₋₁ + Z
Gọi B là giá trị biểu thức b + bZ₀ + bZ₁ + bZ₂ + ... + bZₘ₋₁ thì:
s = Zₘ + B

Dựa vào [1]:

P₍ₛ₎ = Zₘ + B - B
<=> P₍ₛ₎ = Zₘ + B ≡ 9 (Vì B - B = 0 và B ≡ 9 = 0)
Dựa vào [2] [3]:
P₍ₛ₎ = (Zₘ-1) ≡ 9 + 1 + B ≡ 9
<=> P₍ₛ₎ = (Zₘ + B - 1) ≡ 9 + 1
<=> P₍ₛ₎ = (s - 1) ≡ 9 + 1
---------------------------------------------------------------------------------------------------
Kết Luận:
Công thức P₍ₛ₎ = (s - 1) ≡ 9 + 1 tìm được tổng là một chữ số của số nguyên lớn hơn 0 có một hoặc nhiều chữ số.
 
Lần chỉnh sửa cuối:
Do chứng minh hôm trước của tôi thiếu điều kiện đủ để công thức đúng. Nên tôi đã chứng minh lại bên dưới.

Chứng minh công thức P₍ₛ₎ = (s - 1) ≡ 9 + 1 tìm được tổng là một chữ số của số nguyên lớn hơn 0 có một hoặc nhiều chữ số.

Chứng minh:

(≡) là dấu chia lấy dư

Gọi A là tập số nguyên {1,2,...,9}

Gọi P₍ₛ₎ là tổng là một chữ số của số có nhiều chữ số.
Dựa vào công thức P₍ₛ₎ = (s-1) ≡ 9 + 1:

Với s > 0, thì s - 1 luôn luôn >= 0, nên P(s) € A

Gọi a1, a2, a3, ..., an là các chữ số trong một số, giá trị thuộc tập {0,1,2,...,9}.
Gọi s là số có 1 hoặc nhiều chữ số.
---------------------------------------------------------------------------------------------------
Ta có công thức tổng quát của s:

s = a1*10⁰ + a2*10¹ + a3*10² + ... + an*10ⁿ⁻¹
<=> s = a1 + a2*10 + a3*10² + ... + an*10ⁿ⁻¹
<=> s = a1 + a2 + a2*(10¹-1) + a3 + a3*(10²-1) + ... + an + an*(10ⁿ⁻¹-1)
<=> s = a1 + a2 + a3 + ... + an + a2*9 + a3*99 + ... + an*(10ⁿ⁻¹-1)

Gọi b là giá trị biểu thức a2*9 + a3*99 + ... + an*(10ⁿ⁻¹-1), dựa vào dấu hiệu chia hết cho 9 thì b luôn luôn chia hết cho 9.

---------------------------------------------------------------------------------------------------
Gọi Cₙ là tổng của n các số, thì các giá trị lần lượt nhận được là:


CₙTổng các sốGiá trị
Ca10 → 1∗10−1 = 9∗1
Ca1 + a20 → 2∗10−2= 9∗2
Ca1 + a2 + a30 → 3∗10−3= 9∗3
Ca1 + a2 + a3 + ... + an0 → n∗10−n= 9∗n


Cₙ = a1 + a2 + a3 + ... + an
<=> Cₙ = a1 + a2*10 + a3*10² + ... + an*10ⁿ⁻¹ - a2*9 - a3*99 - ... - an*(10ⁿ⁻¹-1)
<=> Cₙ = s - b
Rút ra được kết luận [1]: khi s mất đi b giá trị thì ta nhận được 1 tổng các chữ số

[2] Khi n = 1, thì Cₙ € A, s = Cₙ, P₍ₛ₎ = (s-1) ≡ 9 + 1 luôn đúng.

---------------------------------------------------------------------------------------------------
Với giá trị s:

View attachment 283398
Gọi Zₘ là tổng của Cₙ biểu thức của giá trị s, để có được [3] giá trị Zₘ € A thì:
s = b + bZ₀ + bZ₁ + bZ₂ + ... + bZₘ₋₁ + Z
Gọi B là giá trị biểu thức b + bZ₀ + bZ₁ + bZ₂ + ... + bZₘ₋₁ thì:
s = Zₘ + B

Dựa vào [1]:

P₍ₛ₎ = Zₘ + B - B
<=> P₍ₛ₎ = Zₘ + B ≡ 9 (Vì B - B = 0 và B ≡ 9 = 0)
Dựa vào [2] [3]:
P₍ₛ₎ = (Zₘ-1) ≡ 9 + 1 + B ≡ 9
<=> P₍ₛ₎ = (Zₘ + B - 1) ≡ 9 + 1
<=> P₍ₛ₎ = (s - 1) ≡ 9 + 1
---------------------------------------------------------------------------------------------------
Kết Luận:
Công thức P₍ₛ₎ = (s - 1) ≡ 9 + 1 tìm được tổng là một chữ số của số nguyên lớn hơn 0 có một hoặc nhiều chữ số.
Rất rõ ràng chi tiết bác ạ. Nhưng em không giỏi toán nên vẫn thích cách thay số trực tiếp vào hơn.

PS: Bác có những ứng dụng excel hay phết, tải về nghịch cả tháng chưa ngộ ra hết được code. :p :p :p
 

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

Back
Top Bottom