Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Các kiểu dữ liệu được liên kết được phát hành lần đầu vào Excel for Microsoft 365 tháng 6 năm 2018 và do đó, các tính năng khác có thể không xác định được chúng. Điều này có thể đặc biệt đúng khi bạn muốn dùng các tính năng khác để nhận dạng có điều kiện một ô có chứa kiểu dữ liệu được liên kết hay không. Bài viết này giải thích một số giải pháp thay thế bạn có thể dùng để xác định kiểu dữ liệu được liên kết trong các ô.

Lưu ý: Các kiểu dữ liệu được liên kết chỉ sẵn dùng cho máy khách Nhiều Đối tượng thuê Trên toàn thế giới (tài khoản Microsoft 365 chuẩn).

Công thức

Bạn luôn có thể viết công thức tham chiếu kiểu dữ liệu. Tuy nhiên, nếu bạn muốn trích xuất văn bản của một ô có kiểu dữ liệu được liên kết bằng cách sử dụng hàm TEXT, bạn sẽ nhận được thông báo #VALUE! lỗi.

Giải pháp thay thế là sử dụng hàm FIELDVALUE và chỉ định trường Tên cho tham field_name đã chọn. Trong ví dụ sau đây, nếu ô A1 chứa kiểu dữ liệu chứng khoán thì công thức sẽ trả về tên chứng khoán.

=FIELDVALUE(A1,"Tên")

Tuy nhiên, nếu ô A1 không chứa kiểu dữ liệu được liên kết thì hàm FIELDVALUE sẽ trả về lỗi #FIELD!.. Nếu bạn muốn đánh giá một ô có chứa kiểu dữ liệu được liên kết hay không, bạn có thể sử dụng công thức sau đây, công thức này sử dụng hàm ISERROR để kiểm tra xem hàm FIELDVALUE có trả về lỗi hay không.

=IF(ISERROR(FIELDVALUE(A2,"Name")),"Ô này không có kiểu dữ liệu được liên kết","Ô này có kiểu dữ liệu được liên kết")

Nếu công thức định trị lỗi thì công thức sẽ trả về văn bản "Ô này không có kiểu dữ liệu được liên kết", nếu không, công thức sẽ trả về "Ô này có kiểu dữ liệu được liên kết".

Nếu bạn chỉ muốn ngăn ứng dụng này #FIELD! , bạn có thể sử dụng:

=IFERROR(FIELDVALUE(A1,"Name"),"")

Công cụ này sẽ trả về một ô trống nếu có lỗi.

Định dạng điều kiện

Bạn có thể định dạng có điều kiện một ô dựa trên việc ô đó có kiểu dữ liệu được liên kết hay không. Trước tiên, bạn cần chọn các ô cần định dạng có điều kiện, rồi đi đến Trang đầu > Định dạng Có điều kiện > Quy tắc Mới > sử dụng công thức... Đối với công thức, bạn có thể dùng như sau:

=NOT(ISERROR(FIELDVALUE(A1,"Name")))

Trong đó ô A1 là ô trên cùng trong dải ô bạn muốn đánh giá. Sau đó, áp dụng định dạng bạn muốn.

Trong ví dụ này, nếu ô A1 chứa tên trường hợp lệ cho "Tên", thì công thức trả về TRUE và định dạng sẽ được áp dụng. Nếu ô A1 không chứa kiểu dữ liệu được liên kết thì công thức trả về FALSE và không có định dạng nào được áp dụng. Thay vào đó, bạn có thể loại bỏ NOT nếu muốn tô sáng bất kỳ ô nào không chứa kiểu dữ liệu được liên kết hợp lệ.

VBA

Có một số phương pháp VBA (Visual Basic for Applications) mà bạn có thể sử dụng để xác định xem một ô hoặc dải ô có chứa kiểu dữ liệu được liên kết hay không. Thủ tục đầu tiên này sử dụng thuộc tính HasRichDataType. 

Cả hai quy trình này sẽ nhắc bạn chọn một phạm vi ô để đánh giá, sau đó trả về một hộp thông báo với kết quả.

Sub IsLinkedDataType()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
      '    Check if the HasRichDataType is TRUE or FALSE
        If c.HasRichDataType = True Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c

    MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"
    
End Sub

Thủ tục tiếp theo này sử dụng thuộc tính LinkedDataTypeState.

Sub IsLinkedDataTypeState()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
   '    Check if the LinkedDataTypeState is 1 (TRUE) or 0 (FALSE)
        If c.LinkedDataTypeState = 1 Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c
    
   MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"

End Sub

Đoạn mã cuối cùng này là một hàm do người dùng xác định (UDF) và bạn tham chiếu nó giống như mọi công Excel khác. Chỉ cần nhập =fn_IsLinkedDataType(A1),trong đó A1 là ô bạn muốn đánh giá.

Public Function fn_IsLinkedDataType(c As Range)
'   Function will return TRUE if a referenced cell contains a linked data type
    If c.HasRichDataType = True Then
      fn_IsLinkedDataType = "Linked data type"
    Else
        fn_IsLinkedDataType = "Not a linked data type"
    End If
End Function

Để sử dụng bất cứ ví dụ nào trong số này, nhấn Alt+F11 để mở Trình soạn thảo Visual Basic (VBE), rồi đi đến Chèn Mô-đun> dán mã vào cửa sổ mới mở ra ở bên phải. Bạn có thể sử dụng Alt+Q để thoát Excel sau khi hoàn tất. Để chạy một trong hai ví dụ đầu tiên, hãy đi đến tab Nhà phát triển > Mã> Macros > chọn macro mà bạn muốn chạy từ danh sách, sau đó chọn Chạy.

Bạn cần thêm trợ giúp?

Bạn luôn có thể hỏi chuyên gia trong Cộng đồng kỹ thuật Excel hoặc nhận hỗ trợ trong Cộng đồng.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×