استخدام ميزات أخرى لتحديد أنواع البيانات المرتبطة

ينطبق على
Excel لـ Microsoft 365

تم إصدار أنواع البيانات المرتبطة لأول مرة في Excel لـ Microsoft 365 في يونيو 2018، وعلى هذا النحو، قد لا تتمكن الميزات الأخرى من التعرف عليها. يمكن أن يكون هذا صحيحا بشكل خاص عندما تريد استخدام ميزات أخرى لتحديد ما إذا كانت الخلية تحتوي على نوع بيانات مرتبط أم لا بشكل مشروط. تشرح هذه المقالة بعض الحلول البديلة التي يمكنك استخدامها لتحديد أنواع البيانات المرتبطة في الخلايا.

ملاحظة

تتوفر أنواع البيانات المرتبطة فقط للعملاء متعددي المستأجرين في جميع أنحاء العالم (حسابات Microsoft 365 القياسية).

الصيغ

يمكنك دائما كتابة الصيغ التي تشير إلى أنواع البيانات. ومع ذلك، إذا كنت تريد استخراج نص خلية بنوع بيانات مرتبط باستخدام الدالة TEXT، فستحصل على #VALUE! #REF!.

الحل البديل هو استخدام الدالة FIELDVALUE وتحديد حقل الاسم للوسيطة field_name . في المثال التالي، إذا كانت الخلية A1 تحتوي على نوع بيانات مخزون، فسترجع الصيغة اسم المخزون.

=FIELDVALUE(A1,"Name")

ومع ذلك، إذا كانت الخلية A1 لا تحتوي على نوع بيانات مرتبط، فسترجع الدالة FIELDVALUE خطأ #FIELD!. إذا كنت تريد تقييم ما إذا كانت الخلية تحتوي على نوع بيانات مرتبط أم لا، يمكنك استخدام الصيغة التالية، التي تستخدم الدالة ISERROR لاختبار ما إذا كانت الدالة FIELDVALUE سترجع خطأ.

=IF(ISERROR(FIELDVALUE(A2,"Name")),"لا تحتوي هذه الخلية على نوع بيانات مرتبط","تحتوي هذه الخلية على نوع بيانات مرتبط")

إذا تم تقييم الصيغة إلى خطأ، فسترجع النص "لا تحتوي هذه الخلية على نوع بيانات مرتبط"، وإلا فسترجع "تحتوي هذه الخلية على نوع بيانات مرتبط".

إذا كنت تريد ببساطة منع #FIELD! خطأ، يمكنك استخدام:

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

الذي سيعيد خلية فارغة إذا كان هناك خطأ.

التنسيق الشرطي

يمكنك تنسيق خلية بشكل مشروط استنادا إلى ما إذا كانت تحتوي على نوع بيانات مرتبط أم لا. يمكنك أولا تحديد الخلايا التي تحتاج إلى التنسيق الشرطي، ثم الانتقال إلى Home>Conditional Formatting>New Rule>Use a formula... بالنسبة للصيغة، يمكنك استخدام ما يلي:

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

حيث الخلية A1 هي الخلية العلوية في النطاق الذي تريد تقييمه. ثم قم بتطبيق التنسيق الذي تريده.

في هذا المثال، إذا كانت الخلية A1 تحتوي على اسم حقل صالح ل "الاسم"، فترجع الصيغة TRUE وسيتم تطبيق التنسيق. إذا لم تحتوي الخلية A1 على نوع بيانات مرتبط، فترجع الصيغة FALSE، ولن يتم تطبيق أي تنسيق. يمكنك إزالة NOT إذا كنت تريد تمييز أي خلايا لا تحتوي على أنواع بيانات مرتبطة صالحة بدلا من ذلك.

VBA

هناك العديد من أساليب VBA (Visual Basic for Applications) التي يمكنك استخدامها لتحديد ما إذا كانت الخلية أو النطاق يحتوي على أنواع بيانات مرتبطة. يستخدم هذا الإجراء الأول الخاصية HasRichDataType

سيطالبك كلا الإجراءين بتحديد نطاق من الخلايا لتقييمه، ثم إرجاع مربع رسالة مع النتائج.


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

يستخدم هذا الإجراء التالي الخاصية 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

هذه القصاصة البرمجية النهائية هي دالة معرفة من قبل المستخدم (UDF)، ويمكنك الرجوع إليها تماما مثل أي صيغة Excel أخرى. ما عليك سوى إدخال =fn_IsLinkedDataType(A1)، حيث A1 هي الخلية التي تريد تقييمها.


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

لاستخدام أي من هذه الأمثلة، اضغط على Alt+F11 لفتح محرر Visual Basic (VBE)، ثم انتقل إلى إدراج>وحدة نمطية، والصق التعليمات البرمجية في النافذة الجديدة التي تفتح على اليمين. يمكنك استخدام Alt+Q للخروج مرة أخرى إلى Excel عند الانتهاء. لتشغيل أي من المثالين الأولين، انتقل إلى علامة التبويب> المطور التعليمات >البرمجية>الماكرو حدد الماكرو الذي تريد تشغيله من القائمة، ثم حدد تشغيل.

هل تحتاج إلى مزيد من المساعدة؟

يمكنك دائما سؤال خبير في مجتمع Excel التقني أو الحصول على الدعم في المجتمعات.