Bağlantılı veri türlerini tanımlamak için diğer özellikleri kullanma

Uygulandığı Öğe
Microsoft 365 için Excel

Bağlantılı veri türleri ilk olarak Haziran 2018'de Microsoft 365 için Excel'de kullanıma sunulmuştur ve bu nedenle diğer özellikler onları tanımlayamayabilir. Bir hücrenin bağlantılı veri türü içerip içermediğini koşullu olarak belirlemek için başka özellikler kullanmak istediğinizde bu durum özellikle geçerli olabilir. Bu makalede, hücrelerdeki bağlantılı veri türlerini tanımlamak için kullanabileceğiniz bazı geçici çözümler açıklanmaktadır.

Not

Bağlantılı veri türleri yalnızca Dünya Çapında Çok Kiracılı istemcilerde (standart Microsoft 365 hesapları) kullanılabilir.

Formüller

Her zaman veri türlerine başvuran formüller yazabilirsiniz. Ancak, METNEÇEVİR işlevini kullanarak bağlantılı veri türüyle bir hücrenin metnini ayıklamak isterseniz, #VALUE! hatası döndürür.

Geçici bir çözüm FIELDVALUE işlevini kullanmak ve field_name bağımsız değişkeni için Ad alanını belirtmektir. Aşağıdaki örnekte, A1 hücresi bir hisse senedi veri türü içeriyorsa, formül hisse senedi adını döndürecektir.

=ALANSAYISI(A1,"Ad")

Bununla birlikte, A1 hücresinde bağlantılı veri türü yoksa, ALANSAYISI işlevi #FIELD! hatası döndürür. Bir hücrenin bağlantılı veri türü içerip içermediğini değerlendirmek isterseniz, ALANSAYISI işlevinin hata döndürüp döndürmeyeceğini sınamak için EHATALIYSA işlevini kullanan aşağıdaki formülü kullanabilirsiniz.

=EĞER(EHATALIYSA(FIELDVALUE(A2,"Ad")),"Bu hücrenin bağlantılı veri türü yok","Bu hücrede bağlantılı veri türü var")

Formül hata değerlendirirse "Bu hücrenin bağlantılı veri türü yok" metnini, aksi takdirde "Bu hücrenin bağlantılı veri türü var" metnini döndürür.

Sadece #FIELD bastırmak istiyorsanız! hatası veriyorsa şunu kullanabilirsiniz:

=EĞERHATA(ALANSAYISI(A1,"Ad"),"")

Bu formül hata varsa boş bir hücre döndürür.

Koşullu biçimlendirme

Bağlantılı veri türü içerip içermemesine bağlı olarak, hücreyi koşullu olarak biçimlendirebilirsiniz . Önce koşullu biçimlendirmeye ihtiyaç duyan hücreleri seçer ve sonra Giriş'e> gidersinizKoşullu Biçimlendirme>Yeni Kural>Bir formül kullanın... Formül için şunları kullanırsınız:

=DEĞIL(EHATALIYSA(ALANSAYISI(A1,"Ad")))

Burada A1 hücresi, hesaplamak istediğiniz aralığın en üstündeki hücredir. Ardından istediğiniz biçimi uygulayın.

Bu örnekte, A1 hücresinde "Ad" için geçerli bir alan adı varsa, formül DOĞRU döndürür ve biçimlendirme uygulanır. A1 hücresi bağlantılı veri türü içermiyorsa, formül YANLIŞ değerini döndürür ve biçimlendirme uygulanmaz. Bunun yerine, geçerli bağlantılı veri türleri içermeyen hücreleri vurgulamak isterseniz DEĞİL işaretini kaldırabilirsiniz.

VBA

Bir hücrenin veya aralığın bağlantılı veri türleri içerip içermediğini belirlemek için kullanabileceğiniz çeşitli VBA (Visual Basic for Applications) yöntemleri vardır. Bu ilk yordamda HasRichDataType özelliği kullanılır. 

Bu yordamların her ikisi de sizden değerlendirmek üzere bir hücre aralığı seçmenizi ve ardından sonuçları içeren bir ileti kutusu döndürmenizi ister.


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

Bu sonraki yordamda LinkedDataTypeState özelliği kullanılır.


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

Bu son kod parçacığı kullanıcı tanımlı bir işlevdir (UDF) ve buna diğer Excel formülleri gibi başvurursunuz. =fn_IsLinkedDataType(A1) girmeniz yeterlidir; burada A1, hesaplamak istediğiniz hücredir.


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

Bu örneklerden herhangi birini kullanmak için, Visual Basic Düzenleyicisi'ni (VBE) açmak için Alt+F11 tuşlarına basın, ardından Modül Ekle'ye> gidin ve kodu sağda açılan yeni pencereye yapıştırın. İşiniz bittiğinde Excel'den çıkmak için Alt+Q tuşlarını kullanabilirsiniz. İlk iki örnekten birini çalıştırmak için Geliştirici sekmesine> gidin,Kod>Makroları> listeden çalıştırmak istediğiniz makroyu seçin ve ardından Çalıştır'ı seçin.

Daha fazla yardım mı gerekiyor?

Dilediğiniz zaman Excel Teknoloji Topluluğundaki uzmanlara sorabilir veya Topluluklar'dan destek alabilirsiniz.