Bài viết: Dùng hàm “Đọc số thành chữ VND và USD” với thủ thuật Name và hàm Macro4

Liên hệ QC

hoangdanh282vn

Nguyễn Cảnh Hoàng Danh
Thành viên danh dự
Tham gia
21/12/07
Bài viết
1,900
Được thích
5,277
Nghề nghiệp
Kinh doanh các mặt hàng văn phòng phẩm
Chủ đề này đã có từ rất lâu trên GPE, thay vì viết hàm bằng VBA để đọc số thành chữ thì tác giả lại dùng công thức dưới dạng Name để thực hiện. Ngoài ra, qua góp ý của các thành viên, tác giả sử dụng thêm hàm MACRO4 GetCell để giúp cho việc sử dụng các Name được linh động hơn.

Qua thử nghiệm, đọc công thức bằng Name hoạt động tốt trên các phiên bản Excel 2003 -> 2013. Đối với phiên bản Excel 2007, do Microsoft nâng cấp từ Excel 2003 bị thiếu một thành phần nào đó nên hàm sẽ không chạy được, tuy nhiên bạn có thể khắc phục điều này bằng cách cài đặt bản vá lỗi Excel 2007 Service Pack 3 có thể tải miễn phí tại (http://www.microsoft.com/en-us/download/details.aspx?id=27838)

Name_DocSo_VND_Excel2003.jpg

Giao diện Excel 2003


Name_DocSo_VND_Excel2007.jpg

Giao diện Excel 2007


Name_DocSo_VND_Excel2013.JPG

Giao diện Excel 2013

Chuyển Name sang tập tin khác

Để chuyển các Name sang tập tin của bạn đang làm việc, bạn làm theo các bước sau:


  1. Bạn mở file có chứa name đọc số (Name_doc_so_VND.xls hay Name_doc_so_USD.xls), đồng thời mở tập tin của bạn lên.
  2. Chuyển qua tập tin Name_doc_so_VND.xls, nhấp phải chuột lên tên Sheet "DocSoVND" trên Sheet Tab, chọn Move or Copy…. Tại hộp To book bạn chọn tên tập tin của bạn cần chuyển Name vào và tích chọn ô Create a copy rồi bấm nút OK.
  3. Đóng tập tin Name_doc_so_VND.xls
  4. Trong tập tin của bạn hãy xóa Sheet DocSoVND vừa được chép sang. Vậy là tất cả các Name của tập tin Name_doc_so_VND.xls đã được chuyển sang tập tin của bạn.

Name_MoveOrCopy.jpg



Cách sử dụng công thức

Cú pháp: =IF(ROW(ô cần đọc số),VND) ’ đọc số sang VND
=IF(ROW(ô cần đọc số),USD) ’ đọc số sang USD

Ví dụ: Tại ô A1 đang chứa giá trị 5,555,000 VND, bạn muốn đọc thành chữ tại ô A2 thì bạn dùng công thức với cú pháp sau:
=IF(ROW(A1),VND) ’ kết quả là: "Năm triệu năm trăm năm mươi lăm nghìn đồng."


Thủ thuật đặt tên (Define Name) cho hàm Macro4

Bài này của tác giả: anhtuan1066 (ndu96081631)
Link: http://www.giaiphapexcel.com/forum/showthread.php?7613

Macro4_va_Name.JPG



Bước 1: Thiết lập tham chiếu động

Đặt các Name với các tham chiếu như sau:

Mã:
GetRow0    =ROW(!$A$1)
GetRow      =MID(GET.NAME("GetRow0"),2,FIND("(",GET.NAME("GetRow0"))-1)
GetRC        =SUBSTITUTE(REFTEXT(!$A$1),1,"")
VT               =GET.CELL(6,INDIRECT(GetRC,FALSE))
Myref          =MID(VT,FIND(GetRow,VT)+4,FIND(")",VT)-FIND(GetRow,VT)-4)

Quan trọng nhất là Name cuối cùng "Tham chiếu của tôi" (Myref)... Sau này ta sẽ dùng nó trong hầu hết các công thức...

Các bạn cũng đừng vội tìm hiểu ý nghĩa các name này... Ta sẽ bàn nó trong một dịp khác, cứ "thuộc lòng" và copy nó cho vào máy tính trước đi nhé.

Bước 2: Thiết lập Name tính toán

Ví dụ bạn muốn lấy ColorIndex cũa một ô (cell), ta dùng hàm GET.CELL(63,Cell cần tính)... Bây giờ sẽ được thay thế bằng một name

Mã:
CellColor =GET.CELL(63,INDIRECT(Myref))+0*NOW()
Ghi chú: Việc thêm 0*NOW() vào ko làm thay đỗi kết quả, chỉ là giúp cho nó cập nhật sự thay đổi mỗi khi bảng tính có sự thay đổi và nơi nào mà tham chiếu là một ô thì được thay bằng INDIRECT(Myref)

Bây giờ để lấy ColorIndex của một ô nào đó thì ta dùng công thức sau:

Mã:
=IF(ROW(ô cần lấy ColorIndex),CellColor)

Ví dụ: Lấy CorlorIndex tại ô A1, ta sẽ có công thức:

Mã:
=IF(ROW(A1),CellColor)

Ví dụ thêm:


Ta cần tính giá trị của một dãy các phép toán đang chứa trong ô nhưng được định dạng Text... Ví dụ như ô A1 đang chứa chuỗi biểu thức: 5*4-6+3

Ta sẽ đặt Name:

Mã:
Calc=EVALUATE(INDIRECT(Myref))

Và công thức tại ô A2 trong bảng tính sẽ là:

Mã:
=IF(ROW(A1),Calc)      ’ kết quả là 17

Việc đặt Name cực chỉ một lần nhưng việc sử dụng thì vô cùng linh động... Tất cả gói gọn trong một cú pháp:

Mã:
=IF(ROW(ô tham chiếu),Name)

Lưu ý khi mở file: Rất có thể bạn sẽ nhận được thông báo rằng trong tập tin có chứa Macro4, xin yên tâm và cứ bấm YES (hoặc Enable) để cho các hàm Macro4 hoạt động.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Mình thấy cách dùng Name này hay nhưng mà buộc phải Enable Macro, nếu thế thì sẽ không tiện lắm. Các bạn nghĩ sao?
 
Anh Tuấn ơi, tại sao khi download file xuống thì máy báo là file có lỗi và cảnh báo nguy hiểm, không nên mở. Khi em cố mở ra thì tất cả các dòlà "số không đúng". Em đang sử dụng excel 2010 ah.
 
Web KT
Back
Top Bottom