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

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

الصيغ

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

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

=FIELDVALUE(A1,"Name")

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

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

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

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

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

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

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

يمكنك تنسيق خلية شرطيا استنادا إلى ما إذا كان لديها نوع بيانات مرتبط أم لا. يجب أولا تحديد الخلايا التي تحتاج إلى التنسيق الشرطي، ثم الانتقال إلى الصفحة الرئيسية > التنسيق الشرطي > قاعدة جديدة > استخدام صيغة... بالنسبة للصيغة، يمكنك استخدام ما يلي:

=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 التقني أو الحصول على الدعم في مجتمع الإجابات.

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

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Microsoft Insider

هل كانت المعلومات مفيدة؟

ما مدى رضاك عن جودة الترجمة؟

ما الذي أثّر في تجربتك؟

هل لديك أي ملاحظات إضافية؟ (اختياري)

نشكرك على ملاحظاتك!

×