Đố vui nho nhỏ về công thức tính tổng.

Liên hệ QC

Pansy_flower

...nợ người, nợ đời...
Thành viên danh dự
Tham gia
3/6/06
Bài viết
1,611
Được thích
14,001
Nghề nghiệp
...thiết kế máy bay cho VOI tự lái...^.^
Hôm nay sẳn đọc lại công thức tính tổng tích lũy của chị handung107 nên em nghĩ ra bài toán này. Em cũng không nhớ là trên diễn đàn đã có bài này chưa, thôii thì ta ôn lại chút xíu- thư giản cuối tuần các bác nhé.

Đề bài như sau:

Lập công thức tính tổng của một dãy số.

Ví dụ:

A1=123456789012345
ô B1 lập công thức để tính dãy số này

(123456789012345=1+2+3+4+5+6+7+8+9+0+1+2+3+4+5=60)

Đây chỉ là số ví dụ, số thật có thể nhiều hơn hoặc ít hơn. Có nghĩa là công thức phải tổng quát tất cả các trường hợp.

Em có câu hỏi nhỏ nữa:

Trong excel khi ta gõ một dãy số trên 15 ký tự thì các số đuôi của nó sẽ là các số 0. Ví dụ: 1234567890123456789123456789 thì nó sẽ hiện ra như sau: 1.23E+27. Khi format lại dạng number thì nó sẽ hiển thị là : 1,234,567,890,123,450,000,000,000,000

Làm sao để khắc phục tình trạng này?
 
Lần chỉnh sửa cuối:
Dùng VBA có được không S-G? Dùng công thức thôi e hơi mất Time
 
Secret_grasses đã viết:
Hôm nay sẳn đọc lại công thức tính tổng tích lũy của chị handung107 nên em nghĩ ra bài toán này. Em cũng không nhớ là trên diễn đàn đã có bài này chưa, thôii thì ta ôn lại chút xíu- thư giản cuối tuần các bác nhé.

Đề bài như sau:
Lập công thức tính tổng của một dãy số.

Ví dụ:

A1=123456789012345
ô B1 lập công thức để tính dãy số này

(123456789012345=1+2+3+4+5+6+7+8+9+0+1+2+3+4+5=60)

Đây chỉ là số ví dụ, số thật có thể nhiều hơn hoặc ít hơn. Có nghĩa là công thức phải tổng quát tất cả các trường hợp.



Em có câu hỏi nhỏ nữa:


Dãy số này phải có quy luật gì chứ ??? Chứ cho lung tung thì chắc là chỉ dùng MID cho chắc ăn--=0--=0

Còn nếu luôn có liên tiếp từ 1234567890 thì còn dễ nữa.
???????????????
Thân!
 
Trong Excel chỉ thể hiện 15 chữ số của một số. Nếu muốn excel lưu trữ trên 15 số để tính toán thì tích dấu kiểm vào Precision as Displayed của Tab Options/Calculation
 
Ô A1 chứa số cần tính tổng các chữ số 123456789012345

Dùng công thức sau:
{=SUM(VALUE(MID(ABS(A1),ROW(INDIRECT("1:"&LEN(ABS(A1)))),1)))}

LM
 
Em nghĩ nếu dùng công thức thì phải cho giới hạn số chữ số chứ nhỉ, ví dụ <=1000 chẳng hạn. Em nghĩ đến phương pháp dùng hàm LEN để đếm số ký tự ô A1, còn B1= MID(A1,LEN(A1),1)+ MID(A1,(LEN(A1)-1),1)+....+MID(A1,1,1).
Thế nhưng giải quyết cái chỗ ....ấy khó quá
 
LearnMore đã viết:
Ô A1 chứa số cần tính tổng các chữ số 123456789012345

Dùng công thức sau:
{=SUM(VALUE(MID(ABS(A1),ROW(INDIRECT("1:"&LEN(ABS(A1)))),1)))}

LM
Em test thấy chỉ ra kết quả =1
 
LearnMore đã viết:
Bạn xem kỹ lại, công thức này là công thức mảng, nên kết thúc = Ctrl+Shift=Enter.

LM
Tuyệt vời, cám ơn bác...bác đã giải quyết được cái chỗ....của em !
 
Em có câu hỏi nhỏ nữa:Trong excel khi ta gõ một dãy số trên 15 ký tự thì các số đuôi của nó sẽ là các số 0. Ví dụ: 1234567890123456789123456789 thì nó sẽ hiện ra
[/COLOR]
(hính xác hơn, ~ thứ đó thường được gọi là kí số!
 
duongsatdn đã viết:
Trong Excel chỉ thể hiện 15 chữ số của một số. Nếu muốn excel lưu trữ trên 15 số để tính toán thì tích dấu kiểm vào Precision as Displayed của Tab Options/Calculation

Em chọn rồi nhưng cũng hổng được anh ơi.

Mr Okebab đã viết:
Dãy số này phải có quy luật gì chứ ??? Chứ cho lung tung thì chắc là chỉ dùng MID cho chắc ăn

Còn nếu luôn có liên tiếp từ 1234567890 thì còn dễ nữa.
???????????????
Thân!

Hổng có quy luật gì hết tía ui. Đây là số tự nhiên.

LearnMore đã viết:
Dùng công thức sau:
{=SUM(VALUE(MID(ABS(A1),ROW(INDIRECT("1:"&LEN(ABS( A1)))),1)))}

Hihi, anh LM nhanh ghê. Công thức này đúng nhưng chưa chính xác. Anh xem lại công thức này sẽ cho kết quả là #VALUE! trong trường hợp nào nha!.
a32.gif
 
Lần chỉnh sửa cuối:
duongsatdn đã viết:
Trong Excel chỉ thể hiện 15 chữ số của một số. Nếu muốn excel lưu trữ trên 15 số để tính toán thì tích dấu kiểm vào Precision as Displayed của Tab Options/Calculation

Mình đã tích vào rồi, vẫn không hiển thị hơn được 15 chữ số.

Bác LM nhanh thiệt, trao giải cho LM thôi SG ui!!!
 
SoiBien đã viết:
Mình đã tích vào rồi, vẫn không hiển thị hơn được 15 chữ số.

Bác LM nhanh thiệt, trao giải cho LM thôi SG ui!!!



Chưa đúng hoàn toàn mà anh.

Secret_grasses đã viết:
Hihi, anh LM nhanh ghê. Công thức này đúng nhưng chưa chính xác. Anh xem lại công thức này sẽ cho kết quả là #VALUE! trong trường hợp nào nha!||||| .

Với lại đây là trò thư giản cuối tuần thui mà. Em biết mấy anh siu lém, đâu giám múa rìu qua mắt thợ. Chỉ vì thấy mọi người ham VBA quá, hơi lười trong việc sd công thức nên em post bài này.-\\/.
 
[FONT=&quot]
[/FONT]
[FONT=&quot]{=SUM(VALUE(MID(ABS(A1),ROW(INDIRECT("1:"&LEN(ABS(A1)))),1)))}[/FONT]

Công thức này vẫn còn lỗi #VALUE! nếu chuỗi số cho là số thập phân.

LM
 
hì hì, tới đó coi như xong đi, phần kia thì gắn cái iserror nữa là xong í mờ đúng không LM ơi! thưởng đê, Kiss phát nhỉ! :D
 
LearnMore đã viết:
[FONT=&quot]
[/FONT]
[FONT=&quot]{=SUM(VALUE(MID(ABS(A1),ROW(INDIRECT("1:"&LEN(ABS(A1)))),1)))}[/FONT]

Công thức này vẫn còn lỗi #VALUE! nếu chuỗi số cho là số thập phân.

LM

Em nói là số tự nhiên thôi ạ. Nếu số đó trên 15 ký số thì công thức sẽ cho ra lỗi này.

SoiBien đã viết:
hì hì, tới đó coi như xong đi, phần kia thì gắn cái iserror nữa là xong í mờ đúng không LM ơi! thưởng đê, Kiss phát nhỉ! :D

Hì hì, anh nhanh cái nhảu quá nhỉ!. Anh xem lại đề bài đi nhá!.

Có nghĩa là công thức phải tổng quát tất cả các trường hợp.
 
Secret_grasses đã viết:


Em nói là số tự nhiên thôi ạ. Nếu số đó trên 15 ký số thì công thức sẽ cho ra lỗi này.

Nếu là > 15 số thì vẫn tính bình thường (dĩ nhiên là không đúng do Excel đã làm tròn)
Chỉ đến khi lớn hơn 20 số thì mới báo lỗi.

Thân!
 
Mr Okebab đã viết:
Nếu là > 15 số thì vẫn tính bình thường (dĩ nhiên là không đúng do Excel đã làm tròn)
Chỉ đến khi lớn hơn 20 số thì mới báo lỗi.

Thân!

Vậy tía chị S_G giải đêêêêêêêêêêêêêêêêêêêêê!
 
hoangaccounting đã viết:
Vậy tía chị S_G giải đêêêêêêêêêêêêêêêêêêêêê!

Cậu ép tớ quá, tớ giải đâu có được, chỉ phản biện thôi.

Hơn nữa do Excel chỉ thể hiện 15 con số nên từ 16 trở đi là sẽ bị thay thế = số 0.
Vì thế cũng chỉ nên tính với các con số có số chữ số <=15.

Thân!

P/S : Lâu quá không gặp cậu đấy.:=\+
 
=SUMPRODUCT(((LEN($A$1)-LEN(SUBSTITUTE($A$1,ROW(INDIRECT("1:9")),""))))*ROW(INDIRECT("1:9")))
Có thể A1 là tẽtt sẽ nhập 100 số, vd: '1234567897011122222221111...n
 
Web KT

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

Back
Top Bottom