Tìm giá trị lớn nhất trong chuỗi số La Mã (1 người xem)

Người dùng đang xem chủ đề này

phulien1902

GPE - My love
Tham gia
6/7/13
Bài viết
3,543
Được thích
4,425
Xin chào các thành viên GPE!
Tôi có 1 vướng mắc trong việc tìm giá trị lớn nhất của dãy số La mã.
Đó là tìm giá tri lớn nhất trong 3 cột A,C và F. Giá trị lớn nhất ở đây là X
Ai biết có thể vui lòng chỉ giúp tôi.( Xin mời xem File đính kèm)
Xin chân thành cảm ơn!
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn làm theo hướng như thế này.
Tạo 1 chuỗi liệt kê hết dãy la mã ra có dạng sau:
Mã:
Str = “,I,II,III,IV,V,”
Duyệt 1 vòng qua 3 cột và so sánh với chuỗi dùng Instr theo dạng
Mã:
Pos = InStr(1, str, “," & Cls & “,”)
So sánh cái Pos nào lớn thì nó là Max và lấy cái Cls là chữ la mã lớn nhất
 
Upvote 0
Bạn dùng thử công thức mảng sau nhé:=ROMAN(MAX(MATCH(A1:A10,ROMAN(ROW(1:3999)),0),MATCH(C1:C10,ROMAN(ROW(1:3999)),0),MATCH(F1:F10,ROMAN(ROW(1:3999)),0)))Nhấn Ctrl+Shift+Enter
 
Upvote 0
Xin chào các thành viên GPE!
Tôi có 1 vướng mắc trong việc tìm giá trị lớn nhất của dãy số La mã.
Đó là tìm giá tri lớn nhất trong 3 cột A,C và F. Giá trị lớn nhất ở đây là X
Ai biết có thể vui lòng chỉ giúp tôi.( Xin mời xem File đính kèm)
Xin chân thành cảm ơn!
Trong khi chờ giải pháp tốt hơn bạn dùng tạm công thức mảng này:
Mã:
=ROMAN(MAX(MAX(MATCH($A$1:$A$10,ROMAN(ROW($A$1:$A$100)),0)),MAX(MATCH($C$1:$C$10,ROMAN(ROW($A$1:$A$100)),0)),MAX(MATCH($F$1:$F$10,ROMAN(ROW($A$1:$A$100)),0))))
 
Upvote 0
nếu là Ex 2013 thì có thể dùng hàm arabic còn không thì có thể dùng công thức sau:
Mã:
=ROMAN(MAX([COLOR=#ff0000]LOOKUP(4000,(ROMAN(ROW(1:3999))=A1:A10)*ROW(1:3999)),[/COLOR]LOOKUP(4000,(ROMAN(ROW(1:3999))=C1:C10)*ROW(1:3999)),LOOKUP(4000,(ROMAN(ROW(1:3999))=F1:F10)*ROW(1:3999))))
[THONG BAO]hic, GPE đợt này cực kỳ chậm luôn, mãi mới đăng được[THONG BAO]
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào các thành viên GPE!
Tôi có 1 vướng mắc trong việc tìm giá trị lớn nhất của dãy số La mã.
Đó là tìm giá tri lớn nhất trong 3 cột A,C và F. Giá trị lớn nhất ở đây là X
Ai biết có thể vui lòng chỉ giúp tôi.( Xin mời xem File đính kèm)
Xin chân thành cảm ơn!
* Bước 1 xây dựng 1 hàm chuyển các số La Mã thành các số thông thường của mình
* Dùng Hàm max của excel hoặc bạn tự tạo một hàm để tìm giá trị lớn nhất
Hàm chuyển số La mã bạn có thể tham khảo hàm dưới đây :
Mã:
Private Function RomanToArabic(ByVal roman As String) As _
    Long
Dim i As Integer
Dim ch As String
Dim result As Long
Dim new_value As Long
Dim old_value As Long


    roman = UCase$(roman)
    old_value = 1000


    For i = 1 To Len(roman)
        ' See what the next character is worth.
        ch = Mid$(roman, i, 1)
        Select Case ch
            Case "I"
                new_value = 1
            Case "V"
                new_value = 5
            Case "X"
                new_value = 10
            Case "L"
                new_value = 50
            Case "C"
                new_value = 100
            Case "D"
                new_value = 500
            Case "M"
                new_value = 1000
        End Select


        ' See if this character is bigger
        ' than the previous one.
        If new_value > old_value Then
            ' The new value > the previous one.
            ' Add this value to the result
            ' and subtract the previous one twice.
            result = result + new_value - 2 * old_value
        Else
            ' The new value <= the previous one.
            ' Add it to the result.
            result = result + new_value
        End If


        old_value = new_value
    Next i
    RomanToArabic = result
End Function
mạng GPE chậm thật , gui 1 bài thành 2 bài
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom