Viết hàm từ số tự động đọc sang chữ

Liên hệ QC
Mình xin đóng góp 1 hàm viết số ra chữ.
Ở đây đang chỉ dùng cho số nguyên, chưa dùng cho số thập phân.
Sơ sơ thì hàm nó như sau:
Dùng mid, text để tách cụm 3 số một, kết hợp với hàm sequence để tạo mảng số.
Dùng hàm choose để đổi số thành chữ, và dùng if để lựa chọn các trường hợp.
Cuối cùng dùng hàm trim, concat để nối các phần tử thành chữ số cuối cùng.
Vì muốn chỉ dùng 1 hàm, không sử dụng ô phụ nên hàm nó dài, sơ sơ tầm 10 dòng, mình có tách bằng xuống hàng để dễ theo dõi.
Hàm mình viết ở office 365. Mình cũng đã thử vài số đặc biệt rồi, nhưng có thể chưa hết các trường hợp, nhờ mọi người thử xem còn lỗi ở đâu để sửa. Nhưng chắc là tầm số từ ngàn tỷ đổ xuống là ngon lành.
Xin ý kiến đóng góp của mọi người để mình hoàn thiện cái hàm này hơn.

Hàm MOD hình như số lớn quá nó báo lỗi hay sao,
 

File đính kèm

Mình xin đóng góp 1 hàm viết số ra chữ.
Ở đây đang chỉ dùng cho số nguyên, chưa dùng cho số thập phân.
Sơ sơ thì hàm nó như sau:
Dùng mid, text để tách cụm 3 số một, kết hợp với hàm sequence để tạo mảng số.
Dùng hàm choose để đổi số thành chữ, và dùng if để lựa chọn các trường hợp.
Cuối cùng dùng hàm trim, concat để nối các phần tử thành chữ số cuối cùng.
Vì muốn chỉ dùng 1 hàm, không sử dụng ô phụ nên hàm nó dài, sơ sơ tầm 10 dòng, mình có tách bằng xuống hàng để dễ theo dõi.
Hàm mình viết ở office 365. Mình cũng đã thử vài số đặc biệt rồi, nhưng có thể chưa hết các trường hợp, nhờ mọi người thử xem còn lỗi ở đâu để sửa. Nhưng chắc là tầm số từ ngàn tỷ đổ xuống là ngon lành.
Xin ý kiến đóng góp của mọi người để mình hoàn thiện cái hàm này hơn.

Hàm MOD hình như số lớn quá nó báo lỗi hay sao,
Cách dùng hàm này thế nào bạn nhỉ?
 
Em có file này nhờ anh/chị hổ trợ giúp em với ạ
Nhu cầu:
1/ Tách tên đường riêng ra 1 cột
2/ tách địa chỉ nhà ra 1 cột
Em đang bị vướng chổ địa chỉ không lọc ra được ạ.
ví dụ: Hẻm 114/17/1 Lê Trung Đình. cấn tách ra : địa chỉ: 114 Tên đường: Lê Trung Đình
Mong anh chị giúp em với ạ
 

File đính kèm

@LmoovoenX : Bắt buộc phải có hàm SEQUENCE trong công thức của bạn?
Nếu đúng thì chưa áp dụng đọc số cho mọi người được. Vì giới hạn sử dụng của hàm SEQUENCE.
Dùng công thức để đọc số cũng được nhưng áp dụng cho được nhiều người (dùng Excel thế hệ từ 2000 đến 2022) thì hay hơn.
Tối ưu hơn công thức đó là sử dụng code trên file hoặc Add-ins.
Bạn xem, áp dụng thử công thức ở link.
 
@LmoovoenX : Bắt buộc phải có hàm SEQUENCE trong công thức của bạn?
Nếu đúng thì chưa áp dụng đọc số cho mọi người được. Vì giới hạn sử dụng của hàm SEQUENCE.
Dùng công thức để đọc số cũng được nhưng áp dụng cho được nhiều người (dùng Excel thế hệ từ 2000 đến 2022) thì hay hơn.
Tối ưu hơn công thức đó là sử dụng code trên file hoặc Add-ins.
Bạn xem, áp dụng thử công thức ở link.
Đúng vậy bạn, Excel cũ thì mình đang dùng ô phụ, khá bất tiện. Code thì mình chưa được học, add-ins chắc là hay nhất.
Có cách nào bỏ được hàm SEQUENCE trong hàm trên không nhỉ?
 
Em có file này nhờ anh/chị hổ trợ giúp em với ạ
Nhu cầu:
1/ Tách tên đường riêng ra 1 cột
2/ tách địa chỉ nhà ra 1 cột
Em đang bị vướng chổ địa chỉ không lọc ra được ạ.
ví dụ: Hẻm 114/17/1 Lê Trung Đình. cấn tách ra : địa chỉ: 114 Tên đường: Lê Trung Đình
Mong anh chị giúp em với ạ
Đăng bài mới đi bạn, đây là chủ đề khác nôi dung bài của bạn mà.
 
Đúng vậy bạn, Excel cũ thì mình đang dùng ô phụ, khá bất tiện. Code thì mình chưa được học, add-ins chắc là hay nhất.
Có cách nào bỏ được hàm SEQUENCE trong hàm trên không nhỉ?
Tôi chưa bao giờ dùng hàm SEQUENCE nên không biết bỏ hàm đó đi trong file đó. Lúc nào cài Office đời cao thì mới thử dùng.
Bạn đọc link tôi đính kèm ở bài #27 chưa?
 
Tôi chưa bao giờ dùng hàm SEQUENCE nên không biết bỏ hàm đó đi trong file đó. Lúc nào cài Office đời cao thì mới thử dùng.
Bạn đọc link tôi đính kèm ở bài #27 chưa?
Thực sự thì thấy hàm dài quá, và bạn chụp dạng ảnh mình không copy công thức được nên chỉ nhìn qua thôi.
 
Thực sự thì thấy hàm dài quá, và bạn chụp dạng ảnh mình không copy công thức được nên chỉ nhìn qua thôi.
Tất nhiên là có công thức thì tôi mới chụp ảnh công thức đó chứ.
File của bạn nnt32002 đăng lên ngày 11/10/22.
(trong link của link ấy) :)
 
Tất nhiên là có công thức thì tôi mới chụp ảnh công thức đó chứ.
File của bạn nnt32002 đăng lên ngày 11/10/22.
(trong link của link ấy) :)
Công thức này cơ bản là chia số ra thành từng chữ số rồi đọc, nhưng liệt kê hết các trường hợp ra nên dài quá.


Mình mới làm file mới, không dùng hàm sequence, cơ bản cũng như công thức ở #22.
Mình cũng đã lưu ở định dạng xls, hi vọng nó hoạt động tốt ở các phiên bản cũ của Excel.
Công thức trong ô màu vàng để đọc số ở ô A9, nhờ mọi người thử các trường hợp coi còn lỗi gì không.
Chỗ này mình mới làm cho nó đọc các số từ 15 chữ số trở xuống, nếu ai muốn số to hơn thì thêm vào mảng {1;4;7;10...} và thêm đơn vị ở cái ô xanh nếu cần.
Cảm ơn mọi người nhiều.
 

File đính kèm

Công thức này cơ bản là chia số ra thành từng chữ số rồi đọc, nhưng liệt kê hết các trường hợp ra nên dài quá.


Mình mới làm file mới, không dùng hàm sequence, cơ bản cũng như công thức ở #22.
Mình cũng đã lưu ở định dạng xls, hi vọng nó hoạt động tốt ở các phiên bản cũ của Excel.
Công thức trong ô màu vàng để đọc số ở ô A9, nhờ mọi người thử các trường hợp coi còn lỗi gì không.
Chỗ này mình mới làm cho nó đọc các số từ 15 chữ số trở xuống, nếu ai muốn số to hơn thì thêm vào mảng {1;4;7;10...} và thêm đơn vị ở cái ô xanh nếu cần.
Cảm ơn mọi người nhiều.
Hiện bạn mới cho dấu "," ở tỷ thôi, chắc nên thêm cho phần triệu, nghìn nhỉ? Chắc là đại gia rồi.
Mà để lập ra bảng này thực sự là quá vất vả và công phu.
Nếu được nữa thì bạn có thể gom lại cho gọn được không? Chỉ cần 2 ô, 1 nhập số, 1 thành tiền.
 
Hiện bạn mới cho dấu "," ở tỷ thôi, chắc nên thêm cho phần triệu, nghìn nhỉ? Chắc là đại gia rồi.
Mà để lập ra bảng này thực sự là quá vất vả và công phu.
Nếu được nữa thì bạn có thể gom lại cho gọn được không? Chỉ cần 2 ô, 1 nhập số, 1 thành tiền.
Thì chỉ có 2 ô thôi, ô màu vàng với ô a9. Mấy ô còn lại để theo dõi quá trình làm thôi.
Thích để dấu phẩy ở đâu thì bạn vào hẳn công thức ở ô màu vàng mà sửa.
 
Web KT

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

Back
Top Bottom