Linkitettyjen tieto tyyppien tunnistaminen muiden ominaisuuksien avulla

Linkitetyt tieto tyypit julkaistiin ensimmäisen kerran Excel for Microsoft 365 kesä kuussa 2018, joten muut ominaisuudet eivät välttämättä tunnista niitä. Tämä voi olla erityisen totta, jos haluat määrittää ehdollisesti, sisältääkö solu linkitetyn tieto tyypin. Tässä artikkelissa kerrotaan joistakin vaihtoehtoisista menetelmistä, joilla voidaan tunnistaa solujen linkitetyt tieto tyypit.

Huomautus: Linkitetyt tieto tyypit ovat käytettävissä vain maailmanlaajuisille usean vuokra ajan asiakkaille (vakio Microsoft 365-tileillä).

Kaavat

Voit aina kirjoittaa kaavoja, jotka viittaavat tieto tyyppeihin. Jos haluat poimia solun tekstin linkitetyllä tieto tyypillä teksti-funktion avulla, saat #VALUE! -virheen.

Vaihtoehtoinen menetelmä on käyttää Fieldvalue -funktiota ja määrittää Field_name -argumentin nimi kenttä. Seuraavassa esimerkissä, jos solu a1 sisälsi pörssi tieto tyypin, kaava palauttaa kannan nimen.

= FIELDVALUE (a1; "nimi")

Jos solussa a1 ei kuitenkaan ole linkitettyä tieto tyyppiä, FIELDVALUE-funktio palauttaa #FIELD!-virheen.. Jos haluat arvioida, sisältääkö solu linkitetyn tieto tyypin, voit käyttää seuraavaa kaavaa, joka testaa, voiko FIELDVALUE-funktio palauttaa virheen.

= Jos (ONVIRHE (FIELDVALUE (a2; "nimi")), "Tämä solu ei ole linkitetty tieto tyyppi", "Tämä solu on linkitetty tieto tyyppi")

Jos kaava laskee virheen, se palauttaa tekstin "Tämä solu ei ole linkitetty tieto tyyppi", muuten se palauttaa "Tämä solu on linkitetty tieto tyyppi".

Jos haluat vain estää #FIELD! virhe, voit käyttää:

= JOSVIRHE (FIELDVALUE (a1; "nimi"), "")

Palauttaa tyhjän solun, jos siinä on virhe.

Ehdollinen muotoilu

Voit muotoilla solun ehdollisesti sen perusteella, onko siinä linkitetty tieto tyyppi. Valitse ensin ehdolliset muotoilut tarvitsevat solut ja siirry sitten aloitus > Ehdollinen muotoilu > Uusi sääntö > käyttää kaavaa... Jos kyseessä on kaava, käytä seuraavaa kaavaa:

= NOT (ONERROR (FIELDVALUE (a1; "nimi")))

Jossa solu a1 on sen vaihtelu välin ylin solu, jonka haluat arvioida. Käytä sitten haluamaasi muotoa.

Tässä esimerkissä, jos solussa a1 on kelvollinen kentän nimi nimelle, kaava palauttaa arvon tosi ja muotoilu otetaan käyttöön. Jos solu a1 ei sisällä linkitettyä tieto tyyppiä, kaava palauttaa arvon EPÄTOSI, eikä muotoilua käytetä. Voit poistaa ei, jos haluat korostaa solut, jotka eivät sisällä kelvollisia linkitettyjä tieto tyyppejä.

VBA

On olemassa useita VBA (Visual Basic for Applications)-menetelmiä, joiden avulla voit määrittää, onko solussa tai alueella linkitettyjä tieto tyyppejä. Tämä ensimmäinen toiminto käyttää Hasrichdatatype-ominaisuutta

Kumpikin näistä toiminto sarjoista kehottaa sinua valitsemaan arvioitavat solu alueet ja palauttamaan sitten tulokset sisältävän sanoma ruudun.

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

Seuraavassa menettelyssä käytetään LinkedDataTypeState- ominaisuutta.

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

Tämä loppu koodin pätkä on käyttäjän määrittämä funktio (UDF), ja viittaat siihen aivan kuten mikä tahansa muu Excel-kaava. Kirjoita vain =fn_IsLinkedDataType (a1), jossa a1 on solu, jonka haluat arvioida.

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

Jos haluat käyttää näitä esimerkkejä, avaa Visual Basic Editor (VBE) painamalla näppäin yhdistelmää ALT + F11 ja siirry sitten Lisää>- moduuliinja liitä koodi oikealle avautuvassa uudessa ikkunassa. Voit poistua takaisin Exceliin painamalla Alt + Q , kun olet valmis. Jos haluat suorittaa jommankumman kahdesta ensimmäisestä esimerkkistä, siirry kehitys työkalut-väli lehteen> koodi> makrot> Valitse suoritettava makro luettelosta ja valitse sitten Suorita.

Tarvitsetko lisätietoja?

Voit aina kysyä neuvoa Excel Tech Community -yhteisön asiantuntijalta, saada tukea yhteisön vastauksista tai ehdottaa uutta ominaisuutta tai parannusta Excel User Voice -sivustolla.

Huomautus:  Tämä sivu on käännetty automaation avulla, ja siinä saattaa olla kielioppivirheitä tai epätarkkuuksia. Tarkoitus on, että sisällöstä on sinulle hyötyä. Kerrotko meille, oliko tiedoista hyötyä? Tästä pääset artikkelin englanninkieliseen versioon.

Hyödynnä aikasi mahdollisimman tehokkaasti tilaamalla

Tarvitsetko lisäohjeita?

Kehitä Office-taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×