VLOOKUP useiden Excel-arkkien välillä esimerkkien avulla

  • Jaa Tämä
Michael Brown

Ohjeessa näytetään, miten VLOOKUP-toimintoa käytetään tietojen kopioimiseen toisesta työarkista tai työkirjasta, Vlookup-toiminnon käyttämiseen useissa arkeissa ja dynaamiseen hakuun eri arkkien arvojen palauttamiseksi eri soluihin.

Kun etsit jotain tietoa Excelistä, on harvinaista, että kaikki tiedot ovat samalla arkilla. Useammin joudut etsimään tietoja useammalta arkilta tai jopa eri työkirjoista. Hyvä uutinen on se, että Microsoft Excel tarjoaa useamman kuin yhden tavan tehdä tämä, ja huono uutinen on se, että kaikki tavat ovat hieman monimutkaisempia kuin tavallinen VLOOKUP-kaava. Mutta pienellä kärsivällisyydellä meselvittää ne :)

    Miten VLOOKUP kahden arkin välillä

    Aluksi tutkitaan yksinkertaisinta tapausta - VLOOKUPin käyttämistä tietojen kopioimiseen toisesta laskentataulukosta. Se on hyvin samankaltainen kuin tavallinen VLOOKUP-kaava, joka hakee tietoja samasta laskentataulukosta. Erona on se, että otat laskentataulukon nimen mukaan kaavaan. table_array argumentin avulla voit kertoa kaavallesi, missä laskentataulukossa hakualue sijaitsee.

    Yleinen kaava VLOOKUP:n käyttämiseksi toisesta arkista on seuraava:

    VLOOKUP(lookup_value, Sheet!range , col_index_num, [range_lookup])

    Esimerkkinä mainittakoon myyntiluvut seuraavista lähteistä. Jan raportti Yhteenveto Tätä varten määritellään seuraavat argumentit:

    • Lookup_values ovat sarakkeessa A Yhteenveto ja viittaamme ensimmäiseen tietosoluun, joka on A2.
    • Table_array on Jan-arkin alue A2:B6. Jos haluat viitata siihen, aseta alueen etuliitteeksi arkin nimi ja sen jälkeen huutomerkki: Jan!$A$2:$B$6.

      Huomaa, että lukitsemme alueen absoluuttisilla soluviittauksilla, jotta se ei muutu, kun kaava kopioidaan muihin soluihin.

      Col_index_num on 2, koska haluamme kopioida arvon sarakkeesta B, joka on taulukkomäärityksen toinen sarake.

    • Range_lookup asetetaan FALSE, jos etsitään tarkkaa vastaavuutta.

    Kun argumentit yhdistetään, saadaan tämä kaava:

    =VLOOKUP(A2, Jan!$A$2:$B$6, 2, FALSE)

    Vedä kaavaa alaspäin sarakkeessa ja saat tämän tuloksen:

    Vastaavalla tavalla voit tarkastella tietoja Vlookup-luettelosta. Helmikuu ja Mar levyt:

    =VLOOKUP(A2, Feb!$A$2:$B$6, 2, FALSE)

    =VLOOKUP(A2, Mar!$A$2:$B$6, 2, FALSE)

    Vinkkejä ja huomautuksia:

    • Jos arkin nimi sisältää tilat tai muut kuin aakkoselliset merkit , se on suljettava yksinkertaisiin lainausmerkkeihin, kuten esim. 'Jan Sales'!$A$2:$B$6 Lisätietoja on kohdassa Toiseen arkistoon viittaaminen Excelissä.
    • Sen sijaan, että kirjoittaisit arkin nimen suoraan kaavaan, voit siirtyä hakutaulukkoon ja valita alueen sieltä. Excel lisää viittauksen oikealla syntaksilla automaattisesti, jolloin sinun ei tarvitse tarkistaa nimeä ja etsiä vikoja.

    Vlookup eri työkirjasta

    Jos haluat tehdä VLOOKUP-toiminnon kahden työkirjan välillä, lisää tiedoston nimi hakasulkeisiin, jonka jälkeen tulee arkiston nimi ja huutomerkki.

    Jos haluat esimerkiksi etsiä A2-arvoa alueelta A2:B6 osoitteessa Jan arkki Myyntiraportit.xlsx työkirjaa, käytä tätä kaavaa:

    =VLOOKUP(A2, [Sales_reports.xlsx]Jan!$A$2:$B$6, 2, FALSE)

    Lisätietoja on kohdassa VLOOKUP toisesta Excel-työkirjasta.

    Vlookup useiden arkkien yli IFERRORin kanssa

    Kun sinun on tehtävä hakuja useamman kuin kahden arkin välillä, helpoin ratkaisu on käyttää VLOOKUPia yhdessä IFERRORin kanssa. Ajatuksena on yhdistää useita IFERROR-funktioita useiden työarkkien tarkistamiseksi yksi kerrallaan: jos ensimmäinen VLOOKUP ei löydä vastaavuutta ensimmäiseltä arkilta, etsi seuraavalta arkilta ja niin edelleen.

    IFERROR(VLOOKUP(...), IFERROR(VLOOKUP(...), ..., " Ei löydy "))

    Nähdäksemme, miten tämä lähestymistapa toimii tosielämän datassa, tarkastellaan seuraavaa esimerkkiä. Alla on esitetty Yhteenveto taulukkoon, jonka haluamme täyttää tuotteiden nimillä ja määrillä etsimällä tilausnumeron osoitteesta West ja Itä levyt:

    Ensin haemme nimikkeet. Tätä varten annamme VLOOKUP-kaavalle tehtäväksi etsiä tilausnumeroa A2:ssa olevasta taulukosta Itä ja palauta arvo sarakkeesta B (sarakkeen 2. sarake sarakkeessa table_array A2:C6). Jos täsmällistä vastaavuutta ei löydy, etsi sitten haku West arkki. Jos molemmat hakemistonäkymät epäonnistuvat, palauta "Ei löydy".

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 2, FALSE), "Not found")))

    Jos haluat palauttaa summan, vaihda sarakeindeksin numeroksi 3:

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 3, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 3, FALSE), "Not found"))

    Vihje. Voit tarvittaessa määrittää eri VLOOKUP-toiminnoille eri taulukkomääritykset. Tässä esimerkissä molemmissa hakutaulukoissa on sama määrä rivejä (A2:C6), mutta työarkkisi voivat olla erikokoisia.

    Vlookup useissa työkirjoissa

    Jos haluat tehdä Vlookup-haun kahden tai useamman työkirjan välillä, sulje työkirjan nimi hakasulkeisiin ja laita se ennen arkin nimeä. Esimerkiksi näin voit tehdä Vlookup-haun seuraavasti kaksi eri tiedostoa ( Kirja1 ja Kirja2 ) yhdellä kaavalla:

    =IFERROR(VLOOKUP(A2, [Book1.xlsx]East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, [Book2.xlsx]West!$A$2:$C$6, 2, FALSE), "Ei löytynyt")))

    Tee sarakeindeksin numero dynaaminen useiden sarakkeiden Vlookupiin

    Tilanteessa, jossa sinun on palautettava tietoja useista sarakkeista, tekemällä col_index_num dynaaminen voi säästää aikaa. On tehtävä pari säätöä:

    • Sillä col_index_num argumenttia, käytä COLUMNS-funktiota, joka palauttaa sarakkeiden lukumäärän määritetyssä matriisissa: COLUMNS($A$1:B$1) (Rivikoordinaatilla ei ole väliä, se voi olla mikä tahansa rivi.).
    • Vuonna lookup_value argumentilla, lukitse sarakeviittaus $-merkillä ($A2), jotta se pysyy kiinteänä, kun kaava kopioidaan muihin sarakkeisiin.

    Tuloksena saat eräänlaisen dynaamisen kaavan, joka poimii vastaavia arvoja eri sarakkeista riippuen siitä, mihin sarakkeeseen kaava on kopioitu:

    =IFERROR(VLOOKUP($A2, East!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), IFERROR(VLOOKUP($A2, West!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), "Not found")))

    Kun syötetään sarakkeeseen B, COLUMNS($A$1:B$1) saa arvoksi 2, jolloin VLOOKUP palauttaa arvon taulukkosarjan toisesta sarakkeesta.

    Kun kaava kopioidaan sarakkeeseen C (eli olet vetänyt kaavan B2:sta C2:een), B$1 muuttuu C$1:ksi, koska sarakeviittaus on suhteellinen. Näin ollen COLUMNS($A$1:C$1) evaluoituu arvoksi 3, mikä pakottaa VLOOKUPin palauttamaan arvon kolmannesta sarakkeesta.

    Tämä kaava toimii erinomaisesti 2-3 hakuarkille. Jos niitä on enemmän, toistuvat IFERROR-merkinnät käyvät liian hankaliksi. Seuraava esimerkki osoittaa hieman monimutkaisemman mutta paljon tyylikkäämmän lähestymistavan.

    Vlookup useita arkkeja INDIRECT

    Vielä yksi tapa tehdä Vlookup useiden Excel-arkkien välillä on käyttää VLOOKUP- ja INDIRECT-funktioiden yhdistelmää. Tämä menetelmä vaatii hieman valmistelua, mutta loppujen lopuksi sinulla on kompaktimpi kaava Vlookupiin missä tahansa laskentataulukossa.

    Yleinen kaava Vlookup-menetelmää varten on seuraava:

    VLOOKUP( lookup_value , INDIRECT("'"&INDEX( Lookup_sheets , MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'! lookup_range "), lookup_value )>0), 0)) & "'! table_array "), col_index_num , FALSE)

    Missä:

    • Lookup_sheets - nimetty alue, joka koostuu hakutietojen nimistä.
    • Lookup_value - arvo, jota etsitään.
    • Lookup_range - sarakealue, josta etsitään hakuarvoa.
    • Table_array - tietojen vaihteluväli hakulevyissä.
    • Col_index_num - sen sarakkeen numero taulukkomassassa, josta arvo palautetaan.

    Jotta kaava toimisi oikein, ota huomioon seuraavat varoitukset:

    • Se on matriisikaava, joka on täytettävä painamalla Ctrl + Shift + Enter-näppäimiä yhdessä.
    • Kaikilla arkeilla on oltava sama sarakkeiden järjestys .
    • Koska käytämme yhtä taulukkomääritelmää kaikissa hakuarkkeissa, määritä taulukkomääritys suurin valikoima jos arkissasi on eri määrä rivejä.

    Kuinka käyttää kaavaa Vlookup-menetelmää arkkien välissä

    Jos haluat tarkastella useita arkkeja kerrallaan, suorita seuraavat vaiheet:

    1. Kirjoita kaikkien hakuarkkien nimet jonnekin työkirjaasi ja nimeä kyseinen alue ( Lookup_sheets meidän tapauksessamme).

  • Säädä yleinen kaava tietojesi mukaan. Tässä esimerkissä olemme:
    • A2-arvon etsiminen ( lookup_value )
    • välillä A2:A6 ( lookup_range ) neljässä työlehdessä ( Itä , North , Etelä ja West ), ja
    • vetää vastaavat arvot sarakkeesta B, joka on sarake 2 ( col_index_num ) tietoalueella A2:C6 ( table_array ).

    Edellä esitetyillä argumenteilla kaava saa seuraavan muodon:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6")), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)

    Huomaa, että lukitsemme molemmat alueet ($A$2:$A$6 ja $A$2:$C$6) absoluuttisilla soluviittauksilla.

  • Kirjoita kaava ylimpään soluun (tässä esimerkissä B2) ja täydennä se painamalla Ctrl + Shift + Enter.
  • Kaksoisnapsauta tai vedä täyttökahvaa kopioidaksesi kaavan saraketta alaspäin.
  • Tuloksena on kaava, joka etsii tilausnumeron neljästä arkista ja hakee vastaavan nimikkeen. Jos tiettyä tilausnumeroa ei löydy, näytetään #N/A-virhe, kuten rivillä 14:

    Palauttaaksesi summan, korvaa 2 yksinkertaisesti 3:lla kohdassa col_index_num argumentti, koska määrät ovat taulukkosarjan kolmannessa sarakkeessa:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6")), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE)

    Jos haluat korvata vakiomuotoisen #N/A-virhemerkinnän omalla tekstilläsi, kiedo kaava IFNA-funktioon:

    =IFNA(VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6")), $A2)>0), 0)) & "'!$A$2:$C$6")), 3, FALSE), "Ei löydy")

    Vlookup useita arkkeja työkirjojen välillä

    Tätä yleistä kaavaa (tai sen mitä tahansa muunnelmaa) voidaan käyttää myös useiden arkkien Vlookupiin eri työkirja Liitä työkirjan nimi INDIRECTin sisään, kuten alla olevassa kaavassa on esitetty:

    =IFNA(VLOOKUP($A2, INDIRECT("'[Book1.xlsx]" & INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'[Book1.xlsx]" & Lookup_sheets & "'!$A$2:$A$6")), $A2)>0)), 0))) & "'!$A$2:$C$6"), 2, FALSE), "Ei löydy")

    Vlookup arkkien välillä ja palauttaa useita sarakkeita

    Jos tietoja halutaan poimia useista sarakkeista, voidaan käyttää monikennoisen matriisikaavan kaava voi tehdä sen yhdellä kertaa. Tällaisen kaavan luomiseksi, anna array-vakio parametrille col_index_num argumentti.

    Tässä esimerkissä haluamme palauttaa kohteiden nimet (sarake B) ja summat (sarake C), jotka ovat taulukkomäärityksen 2. ja 3. sarake. Tarvittava joukko on siis {2,3}.

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets &"'!$A$2:$C$6")), $A2)>0), 0)) &"'!$A$2:$C$6"), {2,3}, FALSE)

    Jos haluat syöttää kaavan oikein useisiin soluihin, sinun on tehtävä näin:

    • Valitse ensimmäiseltä riviltä kaikki täytettävät solut (esimerkissämme B2:C2).
    • Kirjoita kaava ja paina Ctrl + Shift + Enter . Tämä syöttää saman kaavan valittuihin soluihin, mikä palauttaa eri arvon jokaiseen sarakkeeseen.
    • Vedä kaava alaspäin jäljellä oleville riveille.

    Miten tämä kaava toimii

    Logiikan ymmärtämiseksi jaetaan tämä peruskaava yksittäisiin funktioihin:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6")), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)

    Kaava toimii sisältä ulospäin seuraavasti:

    COUNTIF ja INDIRECT

    Lyhyesti sanottuna INDIRECT muodostaa viitteet kaikille hakuarkkeille, ja COUNTIF laskee hakuarvon (A2) esiintymät kussakin arkissa:

    --(COUNTIF( INDIRECT("'"&Lookup_sheets&"''!$A$2:$A$6"), $A2)>0)

    Yksityiskohtaisemmin:

    Ensin ketjutat alueen nimen (Lookup_sheets) ja alueen viitteen ($A$2:$A$6) lisäämällä oikeisiin paikkoihin apostrofeja ja huutomerkin ulkoisen viittauksen tekemiseksi ja syötät tuloksena syntyvän merkkijonon INDIRECT-funktiolle, jotta se voi dynaamisesti viitata hakuarkkeihin:

    INDIRECT({"'East'!$A$2:$A$6"; "'South'!$A$2:$A$6"; "'North'!$A$2:$A$6"; "'West'!$A$2:$A$6"})

    COUNTIF tarkistaa jokaisen hakuarkin jokaisen solun alueella A2:A6 olevan solun ja pääarkin A2:ssa olevan arvon välillä ja palauttaa kunkin arkin osumien lukumäärän. Meidän aineistossamme A2:ssa oleva järjestysnumero (101) löytyy sarakkeesta West arkki, joka on 4. nimetyllä alueella, joten COUNTIF palauttaa tämän sarjan:

    {0;0;0;1}

    Seuraavaksi verrataan jokaista edellä olevan joukon elementtiä arvoon 0:

    --({0; 0; 0; 0; 1}>0)

    Tuloksena saadaan joukko TRUE- (suurempi kuin 0) ja FALSE-arvoja (yhtä suuri kuin 0), jotka muutetaan 1:ksi ja 0:ksi käyttämällä kaksoisunaryysiä (--), ja tuloksena saadaan seuraava joukko:

    {0; 0; 0; 1}

    Tämä operaatio on ylimääräinen varotoimenpide, jolla voidaan käsitellä tilannetta, jossa hakutietue sisältää useita hakuarvon esiintymiä, jolloin COUNTIF palauttaisi luvun, joka on suurempi kuin 1, vaikka haluamme lopulliseen matriisiin vain ykkösiä ja nollia (ymmärrät kohta miksi).

    Kaikkien näiden muunnosten jälkeen kaavamme näyttää seuraavalta:

    VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, {0;0;0;0;1} , 0)) &"'!$A$2:$C$6"), 2, FALSE)

    INDEX ja MATCH

    Tässä vaiheessa astuu kuvaan klassinen INDEX MATCH -yhdistelmä:

    INDEX(Lookup_sheets, MATCH(1, {0;0;0;0;1}, 0))

    MATCH-funktio, joka on määritetty tarkkaa vastaavuutta varten (0 viimeisessä argumentissa), etsii arvoa 1 matriisista {0;0;0;0;1} ja palauttaa sen sijainnin, joka on 4:

    INDEX(Lookup_sheets, 4)

    INDEX-funktio käyttää MATCH:n palauttamaa numeroa rivin numeroargumenttina (row_num) ja palauttaa neljännen arvon nimetyllä alueella. Lookup_sheets , joka on West .

    Kaava siis pelkistyy seuraavasti:

    VLOOKUP($A2, INDIRECT("'"&" West "&"'!$A$2:$C$6"), 2, FALSE)

    VLOOKUP ja INDIRECT

    INDIRECT-funktio käsittelee sen sisällä olevaa merkkijonoa:

    INDIRECT("'"& "West"&"'!$A$2:$C$6"))

    Ja muuntaa sen viitteeksi, joka menee osoitteeseen table_array VLOOKUPin argumentti:

    VLOOKUP($A2, 'West'!$A$2:$C$6 , 2, FALSE)

    Lopuksi tämä hyvin tavallinen VLOOKUP-kaava hakee A2-arvon alueen A2:C6 ensimmäisestä sarakkeesta sarakkeessa West ja palauttaa 2. sarakkeesta tuloksen. Siinä se!

    Dynaaminen VLOOKUP tietojen palauttamiseksi useista arkeista eri soluihin.

    Määritellään ensin, mitä sana "dynaaminen" tarkoittaa tässä yhteydessä ja miten tämä kaava eroaa edellisistä.

    Jos sinulla on suuria samassa muodossa olevia tietopaketteja, jotka on jaettu useille laskentataulukoille, voit haluta poimia tietoja eri arkeista eri soluihin. Alla oleva kuva havainnollistaa konseptia:

    Toisin kuin aiemmissa kaavoissa, joissa haettiin arvo tietystä arkista yksilöllisen tunnisteen perusteella, tällä kertaa haluamme poimia arvot useista arkkeista kerrallaan.

    Tähän tehtävään on kaksi erilaista ratkaisua. Kummassakin tapauksessa sinun on tehtävä hieman valmistelutyötä ja luotava nimettyjä alueita kunkin hakuarkiston tietosoluille. Tässä esimerkissä määrittelimme seuraavat alueet:

    • East_Sales - A2:B6 itäisellä arkilla
    • North_Sales - A2:B6 pohjoisella lehdellä
    • South_Sales - A2:B6 eteläisellä lehdellä
    • West_Sales - A2:B6 länsipuolella

    VLOOKUP ja sisäkkäiset IF:t

    Jos sinulla on kohtuullinen määrä arkkeja, voit käyttää sisäkkäisiä IF-funktioita valitaksesi arkin ennalta määritetyissä soluissa (tässä tapauksessa soluissa B1-D1) olevien avainsanojen perusteella.

    Kun hakuarvo on A2:ssa, kaava on seuraava:

    =VLOOKUP($A2, IF(B$1="itä", East_Sales, IF(B$1="pohjoinen", North_Sales, IF(B$1="etelä", South_Sales, IF(B$1="länsi", West_Sales)))), 2, FALSE)

    Englanniksi käännettynä JOS-osa kuuluu seuraavasti:

    Jos B1 on Itä , katso alue nimeltä East_Sales ; jos B1 on North , katso alue nimeltä North_Sales ; jos B1 on Etelä , katso alue nimeltä South_Sales ; ja jos B1 on West , katso alue nimeltä West_Sales .

    IF:n palauttama alue on table_array VLOOKUP-menetelmää, joka hakee vastaavan arvon vastaavan arkin 2. sarakkeesta.

    Sekoitettujen viittausten fiksu käyttö hakuarvon ($A2 - absoluuttinen sarake ja suhteellinen rivi) ja loogisen testin IF (B$1 - suhteellinen sarake ja absoluuttinen rivi) osalta mahdollistaa kaavan kopioimisen muihin soluihin ilman muutoksia - Excel säätää viittaukset automaattisesti rivin ja sarakkeen suhteellisen sijainnin perusteella.

    Syötämme kaavan B2-kohtaan, kopioimme sen oikealle ja alaspäin niin moneen sarakkeeseen ja riviin kuin tarvitaan, ja saamme seuraavan tuloksen:

    EPÄSUORA VLOOKUP

    Kun työskentelet monien arkkien kanssa, useat sisäkkäiset tasot voivat tehdä kaavasta liian pitkän ja vaikeasti luettavan. Paljon parempi tapa on luoda dynaaminen vlookup-alue INDIRECTin avulla:

    =VLOOKUP($A2, INDIRECT(B$1&"_Myynti"), 2, FALSE)

    Tässä yhdistetään viittaus soluun, joka sisältää nimetyn alueen yksilöllisen osan (B1) ja yhteisen osan (_Sales). Näin saadaan tekstijono kuten "East_Sales", jonka INDIRECT muuntaa Excelin ymmärtämäksi alueen nimeksi.

    Tuloksena saat kompaktin kaavan, joka toimii erinomaisesti millä tahansa arkkimäärällä:

    Näin voit tehdä Vlookup-haun Excelin arkkien ja tiedostojen välillä. Kiitos lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    Vlookup useiden arkkien esimerkit (.xlsx-tiedosto)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.