Tekstin poimiminen

Jakke

Onko mahdollista saada seuraavanlaista toimintoa:
A-sarake      B-sarake
Virtanen Heikki      Virtanen
Virtanen Asko      Virtanen
Korhonen Ville      Korhonen
Tuominen Eetu      Tuominen
Korhonen Reino      Korhonen

Eli minulla olisi A sarkeessa ihmisten nimiä ja pitäisi saada B-sarkkeeseen kopioitua A-sarkkeen ihmisten sukunimet. Eri sukunimiä on noin 20kpl ja A-sarakkeessa nimiä noin 500kpl. Miten teen?

15

4993

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • paavali

      Tee soluun B1 kaava
      =POIMI.TEKSTI(A1;1;KÄY.LÄPI(" ";A1))
      ja vedät täyttökahvalla niin pitkälle kun nimiä riittää. Poimii tekstin välilyöntiin asti, jos sukunimi on kaksiosainen poimii vain ensimmäisen osan.

      • Jakke

        Nimet ovat tosiaan kaksi osaisia joten toinen osa jää pois. Olisiko mahdollista että se tutkisi listan jossa se kävisi läpi sukunimet, kun niitähän ei ole kuin se 20kpl.


      • Mika
        Jakke kirjoitti:

        Nimet ovat tosiaan kaksi osaisia joten toinen osa jää pois. Olisiko mahdollista että se tutkisi listan jossa se kävisi läpi sukunimet, kun niitähän ei ole kuin se 20kpl.

        Eikös kaksiosaiset sukunimet kirjoiteta väliviivalla. Silloinhan tuon pitäisi toimia. (Poikkeuksena tosin jotkut "von Hertzen"-tyyppiset nimet)

        Lisäisin tuon funktion loppupuolelle vielä "-1", niin se välilyönti ei tule mukaan:

        =POIMI.TEKSTI(A1;1;KÄY.LÄPI(" ";A1)-1)


        - Mika


      • paavali
        Jakke kirjoitti:

        Nimet ovat tosiaan kaksi osaisia joten toinen osa jää pois. Olisiko mahdollista että se tutkisi listan jossa se kävisi läpi sukunimet, kun niitähän ei ole kuin se 20kpl.

        Jos nimi on muodossa
        Koski-Vähälä Reino
        tuo kaava toimii, Mutta jos nimi on muodossa
        Rantala Kamunen Tuula
        poimii vain Rantala.
        Millaisessa muodossa niitä on.


      • Jakke
        Mika kirjoitti:

        Eikös kaksiosaiset sukunimet kirjoiteta väliviivalla. Silloinhan tuon pitäisi toimia. (Poikkeuksena tosin jotkut "von Hertzen"-tyyppiset nimet)

        Lisäisin tuon funktion loppupuolelle vielä "-1", niin se välilyönti ei tule mukaan:

        =POIMI.TEKSTI(A1;1;KÄY.LÄPI(" ";A1)-1)


        - Mika

        Suurin osa on kyllä normaaleja sukunimiä, mutta löytyy myös noita saksalaisia nimiä Von, Dam, yms.


      • Jakke
        paavali kirjoitti:

        Jos nimi on muodossa
        Koski-Vähälä Reino
        tuo kaava toimii, Mutta jos nimi on muodossa
        Rantala Kamunen Tuula
        poimii vain Rantala.
        Millaisessa muodossa niitä on.

        Ilman väliviivaa. Nyt toteutin sen niin että C-sarakkeessa on seuraava kaava:
        =JOS(B1="Herzen";KETJUTA(B1;" Von");JOS(B1="Dam";KETJUTA(B1;" Van");B1))

        En nyt ihan tarkaan muista montako ikävää sukunimi muunnosta löytyy mutta ei niitä montaa ollut.


      • paavali
        Jakke kirjoitti:

        Ilman väliviivaa. Nyt toteutin sen niin että C-sarakkeessa on seuraava kaava:
        =JOS(B1="Herzen";KETJUTA(B1;" Von");JOS(B1="Dam";KETJUTA(B1;" Van");B1))

        En nyt ihan tarkaan muista montako ikävää sukunimi muunnosta löytyy mutta ei niitä montaa ollut.

        se onnistuu, Mutta ei onnistu ilman -1, josta Mika jo mainitsi.


      • Kunde
        paavali kirjoitti:

        se onnistuu, Mutta ei onnistu ilman -1, josta Mika jo mainitsi.

        Lisää moduuli ja sinne funktio

        Function Sukunimi(Teksti As String)
        Dim i As Integer
        Dim sana As String
        i = 1
        Do Until sana Like (" *")
        sana = Right(Teksti, i)
        i = i 1
        Loop
        Sukunimi = Left(Teksti, Len(Teksti) - Len(sana))
        End Function

        sitten liitä funktio nappulalla haet sukunimi funktion tai kirjoitat suoraan soluun
        =Sukunimi(A1) ja kopioit alas
        :)Kunde


      • Jakke
        Kunde kirjoitti:

        Lisää moduuli ja sinne funktio

        Function Sukunimi(Teksti As String)
        Dim i As Integer
        Dim sana As String
        i = 1
        Do Until sana Like (" *")
        sana = Right(Teksti, i)
        i = i 1
        Loop
        Sukunimi = Left(Teksti, Len(Teksti) - Len(sana))
        End Function

        sitten liitä funktio nappulalla haet sukunimi funktion tai kirjoitat suoraan soluun
        =Sukunimi(A1) ja kopioit alas
        :)Kunde

        Täytyy kokeilla kaikki mahdolliset ja mahdottomat tapaukset. Niin huomasin ettei toimi kunnolla.
        Jos on nimi Virtanen Maija Liisa ilman väliviivaa niin tulos on Virtanen Maija.


      • Mika
        Jakke kirjoitti:

        Täytyy kokeilla kaikki mahdolliset ja mahdottomat tapaukset. Niin huomasin ettei toimi kunnolla.
        Jos on nimi Virtanen Maija Liisa ilman väliviivaa niin tulos on Virtanen Maija.

        Tämä nyt tässä vaihessa enää paljon auta, mutta kuitenkin...

        Taitaa olla varmin kosnti se, että tietojen tallennus vaiheessa käyttää noissa sukunimissä vaikka alaviivaa tyyliin von_Hertzen, ja poistaa "ala-apuviivat" sitten kun tietoja esitetään.


        - Mika


      • edwf
        Mika kirjoitti:

        Eikös kaksiosaiset sukunimet kirjoiteta väliviivalla. Silloinhan tuon pitäisi toimia. (Poikkeuksena tosin jotkut "von Hertzen"-tyyppiset nimet)

        Lisäisin tuon funktion loppupuolelle vielä "-1", niin se välilyönti ei tule mukaan:

        =POIMI.TEKSTI(A1;1;KÄY.LÄPI(" ";A1)-1)


        - Mika

        Entäpä jos haluan sen loppu osan välilyönnin jälkeen C soluun?


    • MSK

      Tämä hirviö B2 soluun tutkittava nimi A2 solussa.

      =POIMI.TEKSTI(A2;1;JOS(ONVIRH(KÄY.LÄPI(" ";A2;KÄY.LÄPI(" ";A2;1) 1));KÄY.LÄPI(" ";A2;1);KÄY.LÄPI(" ";A2;KÄY.LÄPI(" ";A2;1) 1)))

      Tämä tutkii mahdollisen toisen välilyönnin, joten poimii kaksiosaisen sukunimen, mutta ei toimi tälläisenään, jos etunimistäkin löytyy välilyöntejä eli on kaksiosaisia etunimiä (siinä tapauksessa poimii myös ensimmäisen etunimen, jos sukunimessä ei välilyöntiä). pienellä jatkojalostuksella saisi tuonkin tutkittua.

      • Kunde

        MSK kirjoittaa
        "Tämä tutkii mahdollisen toisen välilyönnin, joten poimii kaksiosaisen sukunimen, mutta ei toimi tälläisenään, jos etunimistäkin löytyy välilyöntejä eli on kaksiosaisia etunimiä (siinä tapauksessa poimii myös ensimmäisen etunimen, jos sukunimessä ei välilyöntiä). pienellä jatkojalostuksella saisi tuonkin tutkittua."

        Tuon pienen jatkojalostuksen haluan minäkin nähdä...
        tehtävässähän ei ole mitään muuta vaikeutta kuin kaksi välilyöntiä, eli tapaukset
        1. kaksiosainen sukunimi ja välilyönnillä erotettu nimi ja
        2. välilyönillä erotettu sukunimi ja kaksiosainen etunimi

        Miten ihmeessä MSK aiot selvittää kumpiko tapaus on kyseessä?

        :)Kunde


      • MSK
        Kunde kirjoitti:

        MSK kirjoittaa
        "Tämä tutkii mahdollisen toisen välilyönnin, joten poimii kaksiosaisen sukunimen, mutta ei toimi tälläisenään, jos etunimistäkin löytyy välilyöntejä eli on kaksiosaisia etunimiä (siinä tapauksessa poimii myös ensimmäisen etunimen, jos sukunimessä ei välilyöntiä). pienellä jatkojalostuksella saisi tuonkin tutkittua."

        Tuon pienen jatkojalostuksen haluan minäkin nähdä...
        tehtävässähän ei ole mitään muuta vaikeutta kuin kaksi välilyöntiä, eli tapaukset
        1. kaksiosainen sukunimi ja välilyönnillä erotettu nimi ja
        2. välilyönillä erotettu sukunimi ja kaksiosainen etunimi

        Miten ihmeessä MSK aiot selvittää kumpiko tapaus on kyseessä?

        :)Kunde

        Joo... tajusin tuon välittömästi kirjoitettuani edellisen viestini. Kai toivoin, että kukaan ei tuota mokaa huomaisi... Aika mahdotonta on ilman sanakirjalla varustettua massiivista ohjelmaa selvittää kolmesta peräkkäisestä sanasta, mikä on sukunimeä ja mikä etunimeä.
        Ajattelin tuossa kai sitä, että mahdollisen kolmannenkin välilyönnin voisi ottaa kaavassa huomioon...


    • sdcvsdc

      Asia selvisikin...Eli tein tällaisella kaavalla sen loppuosan haun. Löysin vastauksen toisaalta ja nättäisi toimivan

      =POIMI.TEKSTI(A5;(ETSI(" ";A5)) 1;50)

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Asiakkaalle ei myyty energiajuomaa - tuomio tuli syrjinnästä

      Vaikka oli ilmeisesti täysi-ikäinen. Tosin ei lapsiakaan saisi syrjiä, koska oppivat helposti itsekin syrjimään, jos koh
      Maailman menoa
      80
      4305
    2. Jos venäjällä olisi kansan valitsema presidentti, olisiko Ukrainan sotaa?

      Ei varmasti olisi. Sehän on tiedossa, että raskaalla vaalivilpillä putin jatkaa pressana.
      Maailman menoa
      168
      3401
    3. Pakkoruotsista luopumalla kymmenien miljoonien säästöt

      Pakkoruotsin opiskelun kustannuksista ei ole juurikaan tehty kustannusselvityksiä, mutta joidenkin arvioiden mukaan siit
      Maailman menoa
      121
      3307
    4. Luterilaisen kirkon koko kastekaava on väärä

      Uudessa testamentissa on kaksi täysin ristiriidassa olevaa kastekäskyä Matt 28:19 ja Ap. t. 2:38. Matteuksen evankeluimi
      Kaste
      41
      2754
    5. Miten Yxäri iskettiin?

      Voisin tässä unta odotellessani kertoa, miten mieheni lähestyi minua. Tunsimme entuudestaan. Hän kyseli minulta aina j
      Sinkut
      218
      2554
    6. "Kostokakka!" Farmi Suomen pehtoori avaa sanaisen arkkunsa Frederikin haisevasta jäynästä

      Voi hyvänen aika Reetun touhuja! Pehtoori Terho Häkkinen sai ennen näkemätöntä höykytystä heti Farmi Suomi -realityn alk
      Tv-sarjat
      19
      2211
    7. Katsoitko Petolliset, mitä mieltä?

      Vanajanlinnan käytävät ja salongit täyttyvät jälleen kuiskailuista, salaisuuksista ja petoksista. Petollisten uudella
      Tv-sarjat
      11
      2016
    8. Ylen juontaja möläytti suorassa radio-ohjelmassa

      Ylen Radio Suomen juontaja Samuli Aaltonen käytti törkeää kieltä maanantaiaamupäivän Koko Suomen radio -ohjelman lähetyk
      Maailman menoa
      44
      1993
    9. Ei se halua mitään!!

      Arkailija koko tyyppi!
      Ikävä
      29
      1974
    10. Onko Janne Naakka tuttu kasvo ja mitä mieltä olet Farmi-kokoonpanosta?

      Somevaikuttaja Janne Naakka on tubettaja ja bloggaaja sekä yksi uuden Farmi Suomi -kauden kisaajista. Naakka tuottaa mm.
      Tv-sarjat
      0
      1913
    Aihe