Lukijakysymys: Excel-taulukon lajittelu ja järjestäminen

Tänään vastaillaan taas lukijoiden lähettämiin excel-kysymyksiin. Jos sinulla on excel-pähkinä, mihin kaipaisit apua, ota yhteyttä tämän lomakkeen kautta.

Hei,
Onko mahdollista ja miten lajitella ao. esimerkin mukaiset tiedot nousevaan NUMEROJÄRJESTYKSEEN, vaikka numerosarja on joka tiedossa tekstin jälkeen:

SIILINJÄRVI 53003049
KAJAANI 53003002
IISALMI 53006001
SKANSKA INFRA KESKI-SUOMI 53000007
VJ SKANSKA INFRA 53006012
ESPOO BLOMINMÄKI JV-TUNNELI/YIT 53000057

Ongelmana on siis se, että tieto minkä mukaan taulukko halutaan lajitella on haettavan solun sisällä / perässä. Ainoa tapa tämän toteutukseen käyttämättä makroja tai Excelin VBA-koodauskieltä, on poimia tieto, minkä mukaan taulukko järjestetään toiseen sarakkeeseen, ja järjestää taulukko sen avulla.

Tässä tapauksessa järjestettävä numerosarja on aina viimeisenä, eli viimeisen välilyönnin jälkeen. Jos numerosarja olisi aina saman pituinen, olisi tehtävä vieläkin helpompi (voit hypätä suoraan vaiheeseen 5), mutta oletetaan että numeroita voi olla vaihteleva määrä.

Tämä on itse asiassa melko monimutkainen ongelma ratkaistavaksi excel-kaavoilla. Tarvitsemme useita funktioita: ETSI -funktiota viimeisen välilyönnin etsintään, VAIHDA -funktiota vaihtamaan viimeisen välilyönnin ainutlaatuiseksi merkiksi, PITUUS -funktiota välilyönnin sijainnin löytämiseen sekä OIKEA -funktiota varsinaisen numerosarjan poimintaan.

VAIHE 1 : Lasketaan välilyöntien määrä käyttämällä PITUUS ja VAIHDA -funktioita.

PITUUS -funktio kertoo kuinka pitkä merkkijono on kokonaisuudessaan. VAIHDA -funktio korvaa halutun merkin toisella. Kun lasketaan niiden merkkien määrä, missä on välilyönti, vähennettynä niiden merkkien määrällä, missä välilyönti on poistettu, saadaan välilyöntien määrä.

VAIHE 2 : Korvataan viimeinen välilyönti ainutlaatuisella merkillä

Käytetään yllä saatua tietoa, ja VAIHDA-funktion avulla vaihdetaan viimeinen välilyönti johonkin ainutlaatuiseen merkkiin, mikä on helppo löytää jatkossa. Käytetään esimerkiksi @-merkkiin. Kaava tulee muotoon:

=VAIHDA(A1;” ”;”@”;PITUUS(A1)-PITUUS(VAIHDA(A1;” ”;””)))

VAIHE 3 : Lasketaan missä viimeinen välilyönti on

Seuraavaksi laskemme missä kohdassa solua merkki ”@” on käyttäen ETSI -funktiota:

VAIHE 4 : Numerosarjan pituuden laskeminen

Kun vähennämme solussa A1 olevan merkkijonon pituudesta yllä olevan luvun, saamme vihdoin numerosarjan pituuden, eli viimeisen välilyönnin jälkeisten merkkien määrän:

VAIHE 5 : Numerosarjan poimiminen

Viimeisessä vaiheessa käytämme OIKEA -funktiota, ja poimimme oikealta tarvittavan määrän merkkejä:

Kaava on nyt lopullisessa muodossaan:

=OIKEA(A1;PITUUS(A1)-ETSI(”@”; VAIHDA(A1;” ”;”@”;PITUUS(A1)-PITUUS(VAIHDA(A1;” ”;””)))))

VAIHE 6 : Taulukon järjestäminen

Nyt voimme lajitella taulukon käyttäen saraketta, missä on pelkät numerot:

Jos sinulla on excel -ongelmia, voit kysyä apua tällä lomakkeella.

Ei kommentteja, oletko sinä ensimmäinen?

Kommentoi

Sähköpostiosoitettasi ei julkaista.


*