Kitų funkcijų naudojimas susietiems duomenų tipams identifikuoti

Susietųjų duomenų tipai buvo išleisti„Excel“, skirta „Office 365“ birželio 2018, todėl kitos funkcijos gali būti negalinčios jų identifikuoti. Tai gali būti ypač aktualu, jei norite naudoti kitas funkcijas, kad sąlygiškai nustatytumėte, ar langelyje yra susietų duomenų tipas, ar ne. Šiame straipsnyje aprašomi kai kurie sprendimo būdai, kuriuos galite naudoti norėdami identifikuoti susietus duomenų tipus langeliuose.

Formulės

Visada galite rašyti formules, kurios nurodo duomenų tipus. Tačiau jei norite išgauti langelio, kuriame yra susietas duomenų tipas, tekstą naudodami funkciją TEXT, gausite #VALUE! klaidą.

Sprendimo būdas – naudoti funkciją Fieldvalue ir apibrėžti Field_name argumento lauką pavadinimas . Toliau pateiktame pavyzdyje, jei langelyje a1 yra akcijų duomenų tipas, tada formulė pateiks akcijų pavadinimą.

= FIELDVALUE (a1, "name")

Tačiau jei langelyje a1 nėra susieto duomenų tipo, funkcija FIELDVALUE pateiks #FIELD! klaidos pranešimą. Jei norite įvertinti, ar langelyje yra susietų duomenų tipas, galite naudoti šią formulę, kuri naudoja funkciją ISERROR, kad būtų galima patikrinti, ar funkcija FIELDVALUE pateiks klaidą.

= IF (ISERROR (FIELDVALUE (a2, "name")), "šiame langelyje nėra susieto duomenų tipo", "šiame langelyje yra susietų duomenų tipas")

Jei formulė apskaičiuoja klaidą, ji pateiks tekstą "šiame langelyje nėra susieto duomenų tipo", priešingu atveju bus grąžintas "šiame langelyje yra susietų duomenų tipas".

Jei tiesiog norite nuslėpti #FIELD! klaida, galite naudoti:

= IFERROR (FIELDVALUE (a1, "name"), "")

Kas pateiks tuščią langelį, jei įvyko klaida.

Sąlyginis formatavimas

Galite sąlygiškai formatuoti langelį, atsižvelgdami į tai, ar jis turi susietą duomenų tipą. Pirmiausia pažymėkite langelius, kuriems reikia sąlyginio formatavimo, tada eikite į pagrindinis > sąlyginis formatavimas > Nauja taisyklė > naudoti formulę... Norėdami naudoti formulę, turite naudoti šiuos veiksmus:

= NOT (ISERROR (FIELDVALUE (a1, "name"))

Kur langelyje a1 yra viršutinis norimo įvertinti diapazono langelis. Tada pritaikykite norimą formatą.

Šiame pavyzdyje, jei langelyje a1 yra leistinas lauko pavadinimas "name", formulė grąžina TRUE (teisinga), o formatavimas bus pritaikytas. Jei langelyje a1 nėra susieto duomenų tipo, formulė pateikia klaidingą ir nebus pritaikytas joks formatavimas. Galite pašalinti ne, jei norite paryškinti visus langelius, kuriuose nėra svarbių susietų duomenų tipų.

VBA

Yra kelios VBA ("Visual Basic for Applications") metodai, kuriuos galite naudoti norėdami nustatyti, ar langelyje arba diapazonas yra susietų duomenų tipų. Ši pirmoji procedūra naudoja ypatybę Hasrichdatatype

Abi šios procedūros paragins pažymėti langelių intervalą, kurį norite įvertinti, tada grąžinkite pranešimo lauką su rezultatais.

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

Ši kita procedūra naudoja ypatybę 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

Šis galutinis kodo fragmentas yra vartotojo nustatyta funkcija (UDF) ir jūs nuorodote ją kaip bet kurią kitą "Excel" formulę. Tiesiog įvesk =fn_IsLinkedDataType (a1), kur a1 yra langelis, kurį norite įvertinti.

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

Norėdami naudoti bet kurį iš šių pavyzdžių, paspauskite Alt + F11 , kad atidarytumėte "Visual Basic" rengyklę (VBE), tada eikite į Įterpti> modulįir įklijuokite kodą naujame lange, kuris atidaromas dešinėje pusėje. Kai baigsite, galite naudoti " Alt" + Q , kad grįžtumėte į "Excel". Norėdami vykdyti vieną iš pirmųjų dviejų pavyzdžių, eikite į skirtuką Programų kūrėjas> kodo> makrokomandos> pasirinkite makrokomandą, kurią norite vykdyti iš sąrašo, tada pasirinkite vykdyti.

Reikia daugiau pagalbos?

Visada galite paprašyti specialisto iš „Excel“ technologijų bendruomenės, gauti pagalbos iš Atsakymų bendruomenės arba siūlyti naują funkciją ar patobulinimą „Excel“ vartotojo balse.

Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×