Tag Archives: concatenate

Kahden solun yhdistäminen

Yhdistetään A ja B sarakkeen solut ja laitetaan välilyönti väliin
Esim.:
Solussa A1 = Aku ja B1 = Ankka -> C1 = Aku Ankka
Funktioilla:
KETJUTA (CONCATENATE)
=KETJUTA(A1;” “;B1)
tai
=A1&” “&B1
(Välilyönti laitetaan kahden lainausmerkin väliin koska se on tekstiä kaavassa)

Makrolla voit tehdä sen esim. seuraavalla tavalla:

Sub Yhdista()
'ohjelma yhdistää A ja B sarakkeen solut C sarakkeeseen
 'lähdetään liikkeelle A1:stä (cells(1,1))
 'Cells parametreja muuttaen voidaan valita toinen lähtösolu ja
 'myös sarake jonne yhdistetty tulos laitetaan

Dim rwIndex As Long
Dim i As Long
'lasketaan täytettyjen solujen määrä A1:stä alaspäin
rwIndex = Sheets(1).Cells(1, 1).End(xlDown).Row
For i = 1 To rwIndex
     Cells(i, 3).Value = Cells(i, 1) & " " & Cells(i, 2)
Next
End Sub

 

 

Puuttuvat etunollat

Jäivätkö etunollat pois kun toit tiedot Exceliin?
Ne saadaan takaisin erittäin kätevästi parilla funktiolla, jos tieto on määrämittaista.

Otetaan esimerkiksi postinumerot.
Excelissä on A-sarakkeessa seuraavanlaiset tiedot (etunollat puuttuvat) ja tiedon pituus pitää olla 5-merkkiä:
100
2200
16100

Rivillä 1 puuttuu 2 nollaa, rivillä 2 puuttuu 1 nolla ja rivi 3 on oikeanpituinen.

Monet ratkaisevat tämän sisäkkäisillä JOF (IF) lausekkeilla. Se voidaan tehdä yksinkertaisemmin TOISTA (REPT) ja PITUUS (LEN) funktioilla.

Kaava, jonka rakennan B-sarakkeeseen, on seuraavanlainen:

=TOISTA(“0”;5-PITUUS(A1))&A1
=REPT(“0”;5-LEN(A1))&A1

Eli: TOISTA-funktio toistaa tekstin “0” niin monta kertaa kuin se puuttuu merkkijonosta A1:ssä.
Tämä toistojen määrä lasketaan kaavalla 5-PITUUS(A1).
5 on merkkijonon maksimipituus. A1:n merkkimäärä saadaan funktiolla PITUUS(A1).
Näiden erotus kertoo, kuinka monta nollaa laitetaan lisää.
Kaikki tämä yhdistetään olemassa olevaan arvoon solussa A1 funktiolla &. Tämä “et” merkki on toiminnoltaan sama kun funktio KETJUTA (CONCATENATE), mutta helpompi ja nopeampi kirjoittaa kuin varsinainen funktio.

Lopputulos on B-sarakkeessa:
00100
02200
16100