Kolmannen esiintymän kohdalta katkaiseminen

Jani kysyi tänään kiinnostavan kysymyksen Twitterissä:

Koska Nickellä (@gynsy) on muukin elämä ja oli jäähallilla luistimia teroittamassa, minä ehdin vastata ensin. Laitan vastauksen myös tänne, jos siitä olisi hyötyä muillekin.

kolmannesta katkaisu

Ja kopiointia varten myös tekstinä: =LEFT([@Koodi];  FIND(”#”;  SUBSTITUTE([@Koodi];  ”-”;  ”#”;  3);  1) -1)
Suomenkielinen versio: =VASEN([@Koodi];  ETSI(”#”;  VAIHDA([@Koodi];  ”-”;  ”#”;  3);  1) -1)

Lyhyt kuvaus on varmasti paikallaan

  • SUBSTITUTE([@Koodi]; ”-”; ”#”; 3) etsii kolmannen viivan ja korvaa sen #-merkillä (käytä tässä jotain sellaista merkkiä, joka ei esiinny aineistossasi)
  • FIND(”#”; äskeinen substitute; 1)  puolestaan etsii missä kyseinen #-merkki on eli tämä antaa tulokseksi sijainnin. Merkkiä ryhdytään etsimään 1:stä merkistä lähtien.
  • Lopulta LEFT([@Koodi]; äskeinen FIND -1) poimii vasemmalta lukien sijainti miinus 1 merkkiä.

Saman voisi tehdä myös sisäkkäisillä FIND-funktioilla, mutta funktioita pitäisi lisätä sen mukaan miten monetta esiintymää etsitään. Tässä ratkaisussa kuvattu funktioyhdistelmä on näppärä, sillä voit helposti muuttaa SUBSTITUTE-funktiosta haluatko etsiä kolmannen vai esimerkiksi kymmenennen viivan ilman uusien funktioiden lisäämistä.

Mielenkiinnolla odottelen keksiikö Nicke tähän jonkun terävämmän ratkaisun.

4 kommenttia artikkeliin ”Kolmannen esiintymän kohdalta katkaiseminen

  1. Hetken tätä mietin, eikä kyllä tule mitään parempaa mieleen. Tosin, tuon yhden merkin tai merkkijonon esiintymistiheyden, eli sen kolmosen SUBSTITUTE-kaavassa, voisi vielä laskea automaattisesti jotenkin näin:
    =LEN(F11)-LEN(SUBSTITUTE(F11;”-”;””))
    Suomeksi: =PITUUS(F11)-PITUUS(VAIHDA(F11;”-”;””))

    Tosin, kaava =VASEN(F12;ETSI(”#”;VAIHDA(F12;”-”;”#”;PITUUS(F11)-PITUUS(VAIHDA(F11;”-”;””)));1)-1) saattaa jäädä jo monelta viikonloppuexcelöijältä kokeilematta. 😀

    Tykkää

    • No huh, tuolla mun kaavassa muuten vaihtuu soluviittaukset vähän turhan tiuhaan. 😀
      Solut F11 ja F12 oli minulla lähdesoluina testeille. Yksi solu, vaikkapa A1, riittää kaikkiin esiintymiin. Tai miksei datataulun viittaukset. 🙂

      Tykkää

  2. Jees. Eli tuossa sinun ehdotuksessasi ei määritetä erikseen monennesta viivasta pätkäistään, vaan ehdotuksesi pätkäisisi aina viimeisen viivan kohdalta. Eikö vain?

    Mun pitää muuten vielä tutkailla näitä WordPressin kommentointiasetuksia. Olin luullut määritelleeni asetukset sellaisiksi, että jos olen kerran hyväksynyt tietyn henkilön kommentit, WordPress hyväksyisi ne jatkossa automaattisesti. Jouduin kuitenkin erikseen hyväksymään nämä sinun kommenttisi. Ihmetellään.

    Tykkää

    • Kyllä, nimenomaan viimeisen viivan kohdalta. Mutta sehän se alkuperäinen kysymyskin taisi olla. 🙂

      Olen muuten saattanut käyttää sekaisin vähän niitä sun näitä s-postiosoitteita. Siksi ei mene hyväksymättä nämä kommentit läpi. Tai voihan se johtua jostain muustakin. 😀

      Tykkää

Jätä kommentti