Solun sanojen lukumäärän laskeminen

Petexcel

Kuinka saadaan laskettua yhden solun sanojen lukumäärä, jotka on erotettu pilkulla tai tietyllä muulla merkillä?

10

271

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • =LEN(TRIM(A1))-LEN(SUBSTITUTE(A1;" ";"")) 1
      mutta tulos voi heittää, koska ylimääräiset/ puutuvat välilyönit vaikeuttaa tilannetta(mm. tupla välilyönti ennen pilkkua.)
      Toki voishan sitä monsterikaavaa vääntää, mutta siististi ja varmasti VBA:lla

      soluun kaava =sanojenlkm(A1;","), missä A1 solu ja "," erotin

      moduuliin...

      Function SanojenLkm(Solu As Range, Erotin As String) As Integer
      SanojenLkm = UBound(Split(Solu, Erotin)) 1
      End Function

      Keep EXCELing
      @Kunde

      • Petexcel

        VBA toimii juuri kuten tarvitsin, kiitos!


    • 35

      er

      • Petexcel

        Juuri kun pääsin...

        eli ongelma jatkuu. Excel -03 homma toimii, mutta kun yritin töissä Excel 2000:ssa, palautuu virhe #NIMI?

        kaava taulukossa: =JOS(I6="ha";SUMMA(0,46 0,03*sanojenlkm(G6;",") );"")

        sama virhe palautuu kokeiltaessa yksinkertaista : =sanojenlkm(G6;",")

        Moduulissa on kunden koodi ja solussa G6 on nimiluettelo pilkuin erotettuna..


    • jos oikein muistelen, niin toi SPLIT funtio tuli vasta 2003 versioon...
      eli ei toimi sitten 2000 versiossa ja vaatii toisenlaisen lähestymistavan

    • Petexcel

      Ok, kiitos kunde ja jos keksit jipon 2k versioon niin tupla kiitos :)

      • kyllä se SPLIT sittenkin esiteltiin jo 2000 versiossa...

        kokeilesvielä tällä toimiiko se. Eli pitäisi palauttaa sanojen lkm solusta G6

        Sub koe1()
        MsgBox UBound(Split(Range("G6"), ",")) 1
        End Sub

        en tiedä toimisko tämmönen sitten tämmönen "kikka kolmonen", että kopioit sen 2003 version EXCEL.EXE jonnekin kansioon siellä duunissa ja lisäät sitten VBA puolella referenssin siihen... ja sitten kokeilet uudelleen funktiota?


      • kunde kirjoitti:

        kyllä se SPLIT sittenkin esiteltiin jo 2000 versiossa...

        kokeilesvielä tällä toimiiko se. Eli pitäisi palauttaa sanojen lkm solusta G6

        Sub koe1()
        MsgBox UBound(Split(Range("G6"), ",")) 1
        End Sub

        en tiedä toimisko tämmönen sitten tämmönen "kikka kolmonen", että kopioit sen 2003 version EXCEL.EXE jonnekin kansioon siellä duunissa ja lisäät sitten VBA puolella referenssin siihen... ja sitten kokeilet uudelleen funktiota?

        kokeile tätäkin...

        Sub koe2()
        MsgBox UBound(Split(Range("G6"), Chr(44))) 1
        End Sub
        jos ei näillä pelitä sitten toisella tapaa...
        nyt täällä paikallinen uusivuosi joten menee sitten ensiviikkoon vastaukset...


      • kunde kirjoitti:

        kokeile tätäkin...

        Sub koe2()
        MsgBox UBound(Split(Range("G6"), Chr(44))) 1
        End Sub
        jos ei näillä pelitä sitten toisella tapaa...
        nyt täällä paikallinen uusivuosi joten menee sitten ensiviikkoon vastaukset...

        vielä yksi tarkistuspaikka
        Referenssit ja jos jossakin teksti Missing niin lisää se sitten
        Eihän siellä ole enkkuversio? Joten kaavassa oleva erotin ; pitäisi olla , ???

        no paikallista Hyvää Uutta Vuotta sitten ( 3. Uusi Vuosi jo tälle vuodelle...) olispas nää muutkit juhlat sitten aina kolmena kappaleena... ;-)


    • Petexcel

      Duuniversio on suomi. Koe1/2 palauttaa virheen #NIMI?. Varmuudeksi, riittääkö soluun aliohjelmakutsu: =koe1 tai =koe2?
      Tsekkasin VB:n puolella Tools/References (onko oikea paikka?), ei näkynyt Missing. Siellä täpättynä VB for Applications, MS Excel 9.0 Object Library, OLE Automation, MS Office 9.0 Object Library. Nimim. pihalla :)

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

    Luetuimmat keskustelut

    1. Persujen vaalilupaus oli euron bensa

      Nyt puhutaan jo kolmen euron bensasta. Kyseessä on Suomen historian törkein vaalipetos.
      Maailman menoa
      92
      2147
    2. Vain vasemmistohallitus saa minut menemään töihin

      Änkyräkapitalistien sortaessa kansaa en laita rikkaakaan ristiin. Elän mielummin Kelan tuilla, ja jos niitä leikataan, n
      Maailman menoa
      42
      2105
    3. Maataloustuet perittävä korkojen kera takaisin

      Yrittäjiltä jotka ovat myyneet tuotantoaan ulkomaille. Veronmaksajan kustantama tuki on tarkoitettu elintarvikkeiden hi
      Maataloustuki
      50
      1845
    4. Topi osti Askon

      Hieno mies. Pelastaa työpaikkoja. Kiitokset myös emännälleen, joka pitää isännän virkeänä. https://www.is.fi/taloussan
      Maailman menoa
      75
      1370
    5. Mitä kirjainta kaipaat?

      Pitkästä aikaa tämmöistä. Onko kirjain muuttunut edellisestä. ☺️
      Ikävä
      86
      1261
    6. Kastaa ja upottaa on eri sanat

      Kastaa ja upottaa on eri sanat ja niillä on eri merkitys. Eikä Jeesusta haudattu upottamalla maahan kaivettuun kuoppaan
      Kaste
      219
      1151
    7. Uskomatonta touhua!

      Ei olis uskonut että kateus yrittäjää kohtaan menee noin pitkälle. TTP:ssa irrotettu sähköjohto jäätelöaltaasta. Kaikki
      Haapavesi
      31
      1080
    8. Oliko se oikeasti epäselvää

      sinulle että olin ihastunut sinuun? (Ymmärrän että siitä on aikaa, eikä voi olettaa että kaikkea muistaisi tai että men
      Ikävä
      56
      1023
    9. Miten hän sinua katsoi?

      😊😊😊😊😊😊
      Ikävä
      67
      946
    10. Miksi eduskuntatalon portaille sytyttään tänään 8 645 kynttilää?

      Oikeus elämään ry järjestää lauantaina 21.3.2026 tapahtuman, jossa Eduskuntatalon portaille sytytetään 8 645 kynttilää.
      Luterilaisuus
      285
      910
    Aihe