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ä.