Làm việc với Chữ số La Mã (Microsoft Excel)
Excel bao gồm một hàm trang tính cho phép bạn chuyển đổi một số sang chữ số La Mã. (Hừm. Để xem nào … Tôi sinh ra ở MCMLVI. Dang! Tôi là người cổ điển!) Cách đơn giản nhất để sử dụng các chữ số La Mã như sau:
=ROMAN(123)
Tất nhiên, tất cả những gì bạn cần làm là thay thế 123 bằng số bạn muốn chuyển đổi. Bạn có thể sử dụng bất kỳ số nào trong khoảng từ 1 đến 3999. (Người La Mã dường như không bao giờ làm việc với các số nằm ngoài phạm vi này.)
Bạn cũng có thể, nếu muốn, sử dụng đối số thứ hai để chỉ ra cách các chữ số La Mã kết quả được ghép lại với nhau. Các đối số khác nhau mà bạn có thể sử dụng là 0 đến 4, với 0 là mặc định. Đối số 0 trả về chữ số La Mã ở dạng cổ điển và 4 trả về chữ số La Mã cực kỳ đơn giản. Các giá trị từ 0 đến 4 trả về các phiên bản đơn giản hơn dần dần. Việc đơn giản hóa chữ số La Mã thường chỉ phát huy tác dụng khi xử lý các số lớn hơn. Ví dụ, phần sau cho thấy các mức độ đơn giản hóa khác nhau của số 1999:
Formula |
Result |
|
=ROMAN(1999,0) |
MCMXCIX |
|
=ROMAN(1999,1) |
MLMVLIV |
|
=ROMAN(1999,2) |
MXMIX |
|
=ROMAN(1999,3) |
MVMIV |
|
=ROMAN(1999,4) |
MIM |
Bạn nên lưu ý rằng hàm ROMAN trả về một giá trị văn bản và do đó bạn không thể sử dụng kết quả trong bất kỳ loại tính toán nào — theo như Excel có liên quan, nó không còn là một số nữa.
Các phiên bản Excel cũ hơn (bao gồm Excel 2003) không bao gồm chức năng chuyển đổi số La Mã trở lại số Ả Rập. Nếu bạn muốn sử dụng cách tiếp cận công thức để thực hiện chuyển đổi, bạn có thể thử cách này:
=MATCH(A1,INDEX(ROMAN(ROW(INDIRECT("1:4000"))),0),0)
Điều này giả định rằng các chữ số La Mã nằm trong ô A1. Nếu muốn, bạn có thể tạo hàm do người dùng định nghĩa của riêng mình để chuyển đổi sang tiếng Ả Rập:
Public Function UnRoman(RomanNumber As String) As Integer Dim MySum As Integer Dim MyDeduct As Integer Dim MyWord As String Dim L As String Dim WordLength As Integer Dim i As Integer Dim MyArray() As Integer MySum = 0 MyDeduct = 0 MyWord = UCase(RomanNumber) WordLength = Len(MyWord) ReDim MyArray(WordLength + 1) For i = 1 To WordLength L = Mid(MyWord, i, 1) MyArray(i) = Switch(L = "I", 1, L = "V", 5, _ L = "X", 10, L = "L", 50, L = "C", 100, _ L = "D", 500, L = "M", 1000) MySum = MySum + MyArray(i) Next For i = 1 To WordLength - 1 If MyArray(i) < MyArray(i + 1) Then MyDeduct = MyDeduct + MyArray(i) End If Next 'Now deduct twice the value of the subtraction numbers UnRoman = MySum - 2 * MyDeduct End Function
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (1956) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.