Em cần giúp đỡ: Cách tính tổng các con số trong dãy số

  • Thread starter Thread starter Plaza
  • Ngày gửi Ngày gửi
Liên hệ QC
Chắc là nhẩm tính tổng các con số 1,23457E+14. Bỏ chữ E và dấu cộng (+) ra, tổng "trật lấc" đó mà.
Ẹc...

Cái này là anh đoán thôi nha, nhưng sao lại có số lớn quá vậy hén. Đọc không được luôn nè. Nếu 15 số đọc là 100 ngàn tỷ hả?
 
Lần chỉnh sửa cuối:
Cái này là anh đoán thôi nha, nhưng sao lại có số lớn quá vậy hén. Đọc không được luôn nè. Nếu 15 số đọc là 100 ngàn tỷ hả?
Đọc là tỷ tỷ thôi, là thật tôi cộng vẫn thấy sai ... bạn thử giúp đi
"123456789987654321". cho số này vào trong bảng thì =92
"-------------------------". cho vào cột để cộng thì = 90.
 
Đọc là tỷ tỷ thôi, là thật tôi cộng vẫn thấy sai ... bạn thử giúp đi
"123456789987654321". cho số này vào trong bảng thì =92
"-------------------------". cho vào cột để cộng thì = 90.

Mình tính thử thì ra 90, nếu ra 92 thì chắc là dư số nào ấy.
 
Lần chỉnh sửa cuối:
hic, công thức cùi bắp này (ở bài số 10):
=SUM(--MID(A2, ROW(INDIRECT("1:" & LEN(A2))),1))
cũng tính tổng các chữ số "123456789987654321" ra 90.
 
Mời thầy xem hộ em với, không biết là sai ở đâu,? thầy xem cái file thứ 2.


Khi mạn phép sửa code của bạn ndu tôi đã có nói rồi. Với chuỗi > 15 chữ số thì code sẽ không đúng nữa. Vd. nếu bạn nhập số 123456789987654321 thì Excel hiển thị cho bạn ở ô nhập là
1,23457E+17. Tuy nhiên Excel "lưu" trong bộ nhớ số chính xác hơn. Nếu bạn click vào ô thì trên thanh công thức bạn sé có là 123456789987654000 (tức không phải là
1,23457E+17 = 123457000000000000 mà chính xác hơn), tuy nhiên nó không phải số mà bạn đã nhập nữa.
Đấy mới chỉ là 1 vấn đề. Vấn đề thứ hai là khi số được truyền vào hàm SumDigits thì số có dạng
1,23456789987654E+17
Tất nhiên sau khi thực hiện lệnh tmp = .Replace(Num, "") thì
tmp = "12345678998765417"
Dĩ nhiên lúc này tổng các chữ số là 92.
Tôi đã nói rồi. Khi số có > 15 chữ số thì số truyền vào hàm sẽ có dạng x,y...zE+abc
Thậm chí nếu ta xét các th này bằng cách không thực hiện lệnh tmp = .Replace(Num, "") mà trước hết lược bỏ E thì số xy...z0...0 cũng không phải là số mà người dùng đã nhập vào ô trên sheet (số 123456789987654000 không phải là số đã nhập 123456789987654321)
Vậy không còn cách nào khác nữa. Nếu ta muốn hỗ trợ chuỗi dài tùy ý thì BẮT BUỘC ta phải nhập vào sheet dữ liệu ở dạng text. Hoặc ít ra thì với những số lớn phải nhập vào sheet dưới dạng text.
Bạn có 2 lựa chọn
a. Viết hàm hỗ trợ các số có tối đa 15 chữ số - và nhập vào sheet bình thường
b. Viết hàm hỗ trợ chuỗi dài bất kỳ - lúc này bắt buộc nhập vào sheet dưới dạng text. Chỉ riêng cái khoản số quá dài sẽ bị "làm tròn" đã đủ để nó khác với số người dùng đã nhập rồi. Vậy thì làm gì có chuyện tính tổng các chữ số mà người dùng nhập??? Chỉ có chuyện tính tổng các chữ số của số do "ông" Excel nhập thôi chứ. Tính tổng của ông Excel cũng dễ thôi nhưng yêu cầu là tính tổng của người dùng nhập cơ mà.
 
hic, công thức cùi bắp này (ở bài số 10):
=SUM(--MID(A2, ROW(INDIRECT("1:" & LEN(A2))),1))
cũng tính tổng các chữ số "123456789987654321" ra 90.

Tôi không rõ cái công thức mà bạn gọi là cùi bắp tính ra được bao nhiêu. Có điều chắc chắn là nếu ô A2 không được định dạng là TEXT thì sau khi gõ vào A2 chuỗi ký tự 123456789987654321 thì trong ô A2 chắc chắn không có cái đã gõ, tức 123456789987654321. Lúc đó thì công thức không thể trả về 90 được. Có mà ma thuật.
Thế nếu ô A2 được định dạng là TEXT và người dùng gõ 123456789987654321????
Thì lúc đó SumDigits sẽ trả về 90. Còn cùi bắp trả về bao nhiêu tôi không thử.
 
hehe có cách đấy thử vào hỏi bác goodle thần chưởng xem bác ý có biết không mấy anh

Thế tìm bác goodle ở đâu vậy??? Chả nhẽ một bác goodle cao thủ võ lâm tiếng tăm lừng lẫy trong thiên hạ mà tôi lại không nghe tới?
 
Thế nếu ô A2 được định dạng là TEXT và người dùng gõ 123456789987654321????
Thì lúc đó SumDigits sẽ trả về 90. Còn cùi bắp trả về bao nhiêu tôi không thử.

Sao bạn không test thử, nếu số trên định dạng là số thì công thức của bạn là bao nhiêu?Còn khi định dạng là kiểu text thì hàm của Hoangvuluan là OK
 
Sao bạn không test thử, nếu số trên định dạng là số thì công thức của bạn là bao nhiêu?Còn khi định dạng là kiểu text thì hàm của Hoangvuluan là OK

Bạn ạ, tôi không thử vì tôi nghĩ đơn giản là bạn hoangvuluan đã khẳng định như thế thì chắc chắn bạn ấy đã thử (với định dạng là text)
Bạn hỏi: nếu số trên định dạng là số thì công thức của bạn là bao nhiêu? Bạn ạ, bạn có đọc bài của tôi không? Tôi đã nói rõ là nếu tôi viết hàm phục vụ chuỗi dài tùy ý thì bắt buộc dữ liệu phải định dạng là text. Vậy câu hỏi của bạn là thừa bạn ạ. Muốn tranh luận thì phải đọc bài của người ta chứ, phải biết người ta đã nói gì, cái gì chưa nói chứ. Cái văn hóa tranh luận nó đòi hỏi như vậy bạn ạ.
 
Web KT

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

Back
Top Bottom