Kirjaudu sisään Microsoft-tilillä
Kirjaudu sisään tai luo tili.
Hei,
Käytä toista tiliä.
Sinulla on useita tilejä
Valitse tili, jolla haluat kirjautua sisään.

Linkitetyt tietotyypit julkaistiin Excel for Microsoft 365 kesäkuussa 2018, ja muut ominaisuudet eivät välttämättä tunnista niitä. Näin voi olla erityisesti silloin, kun haluat muiden ominaisuuksien avulla tunnistaa ehdollisesti, sisältääkö solu linkitetyn tietotyypin. Tässä artikkelissa kerrotaan, miten voit selvittää soluissa linkitettyjä tietotyyppejä.

Huomautus: Linkitetyt tietotyypit ovat käytettävissä vain maailmanlaajuisissa usean vuokraajan asiakasasiakkaissa ( Microsoft 365 tilit).

Kaavat

Voit aina kirjoittaa kaavoja, joissa viitataan tietotyyppeihin. Jos kuitenkin haluat poimia linkitetyn tietotyypin solun tekstin TEKSTI-funktiolla, saat #VALUE! -virheen.

Vaihtoehtoinen menetelmä on käyttää KENTTÄARVO-funktiota ja määrittää Nimi-kentän field_name argumentille. Jos seuraavassa esimerkissä solu A1 sisälsi osaketietotyypin, kaava palauttaisi osakenimen.

=KENTTÄARVO(A1,"Nimi")

Jos solussa A1 ei kuitenkaan ole linkitettyä tietotyyppiä, KENTTÄARVO-funktio palauttaa #FIELD! -virheen.. Jos haluat arvioida, sisältääkö solu linkitetyn tietotyypin, voit käyttää seuraavaa kaavaa, joka testaa ONVIRHE-funktion avulla, palauttaako KENTTÄARVO-funktio virheen.

=JOS(ONVIRHE(KENTTÄARVO(A2,"Nimi")),"Tällä solulla ei ole linkitettyä tietotyyppiä","Tällä solulla on linkitetty tietotyyppi")

Jos kaavan arvo on virhe, se palauttaa tekstin "Tällä solulla ei ole linkitettyä tietotyyppiä", muussa tapauksessa se palauttaa tekstin "Tällä solulla on linkitetty tietotyyppi".

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

=JOSVIRHE(KENTTÄARVO(A1,"Nimi"),"")

Tämä palauttaa tyhjän solun, jos tapahtuu virhe.

Ehdollinen muotoilu

Voit muotoilla solun ehdollisesti sen perusteella, onko sillä linkitetty tietotyyppi. Valitse ensin solut, jotka tarvitsevat ehdollista muotoilua, ja siirry sitten Aloitus-> Ehdollinen muotoilu > Uusi sääntö >Käytä kaavaa... Kaavassa käytetään seuraavaa kaavaa:

=EI(ONVIRHE(KENTTÄARVO(A1,"Nimi")))

Solu A1 on arvoalueen ylin solu. Ota sitten käyttöön muotoilu, jota haluat käyttää.

Jos tässä esimerkissä solu A1 sisältää kelvollisen kentän nimen nimeksi "Nimi", kaava palauttaa arvon TOSI ja muotoilu otetaan käyttöön. Jos solu A1 ei sisällä linkitettyä tietotyyppiä, kaava palauttaa arvon EPÄTOSI eikä muotoilua käytetä. Voit poistaa EI-laskentataulukon, jos haluat korostaa solut, jotka eivät sisällä kelvollisia linkitettyjä tietotyyppejä.

VBA

On useita VBA (Visual Basic for Applications) -menetelmiä, joiden avulla voit selvittää, sisältääkö solu tai alue linkitettyjä tietotyyppejä. Ensimmäisessä menettelyssä käytetään HasRichDataType-ominaisuutta. 

Kumpikin näistä tavoista kehottaa valitsemaan laskettavan solualueen ja palauttaa sitten tulokset palauttavan sanomaruudun.

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 toimintosarjassa 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ä lopullinen koodikatkelma on käyttäjän määrittämä funktio (UDF) ja viittaat siihen kuten muihinkin Excel kaavaan. Kirjoita =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ää mitä tahansa näistä esimerkeistä, avaa Visual Basic Editor (VBE) painamalla Alt+F11, siirry sitten Lisää> Module-valikkoon ja liitä koodi uuteen ikkunaan, joka avautuu oikealle. Voit poistua takaisin Excel Alt+Q-näppäinyhdistelmällä. Jos haluat suorittaa jommankumman kahdesta ensimmäisestä esimerkistä, siirry Kehitystyökalut-välilehteen > Koodi > Makrot > valitse suoritettava makro luettelosta ja valitse sitten Suorita.

Tarvitsetko lisätietoja?

Voit aina kysyä neuvoa Excel Tech Community -yhteisön asiantuntijalta tai saada tukea tukiyhteisöltä.

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.

Oliko näistä tiedoista hyötyä?

Kuinka tyytyväinen olet käännöksen laatuun?
Mikä vaikutti kokemukseesi?
Kun valitset Lähetä, palautettasi käytetään Microsoftin tuotteiden ja palveluiden parantamiseen. IT-järjestelmänvalvojasi voi kerätä nämä tiedot. Tietosuojatiedot.

Kiitos palautteesta!

×