Avatar billede Kast20 Seniormester
16. marts 2015 - 16:26 Der er 16 kommentarer og
1 løsning

Tæl antal kilde-ord fra E100-E105

Hej,

I en range fra E100-E105 vil jeg gerne i en celle, tælle hvor mange kilde-ord der ialt er adskilt med mellemrum. Mellemrum skal ikke tælle med. Er der en der kan hjælpe med en formel?
Avatar billede Kast20 Seniormester
16. marts 2015 - 16:27 #1
Bemærk også at der i cellerne bruges komma og punktum. Disse skal heller ikke tælle som kilde-ord. :-)
Avatar billede xl-Enthusiast Ekspert
16. marts 2015 - 17:17 #2
Kan du ikke give eksempler inklusive ønskede resultater?
Avatar billede natkatten Mester
16. marts 2015 - 17:29 #3
Måske en matriksformel a la denne:

=SUM(LÆNGDE(E100:E105)-LÆNGDE(UDSKIFT(UDSKIFT(UDSKIFT(E100:E105;
" ";"");".";"");",";""))+1)

Alternativt lidt VBA
Avatar billede Kast20 Seniormester
16. marts 2015 - 17:47 #4
Fik ikke lige den formular til at virke. Giver mig blot "NAME?"

Eksempel fra E100-E102:

E100: Dette er en test
E101: Dette er endnu en test, der inkluderer lidt mere tekst
E102: Dette er den sidste test

Resultat: 19 kilde-ord

Faldt over denne artikel men lader ikke til at den formula i eksemplet virker: https://support.office.com/en-nz/article/Ways-to-count-values-in-a-worksheet-96dacf89-5be0-44f0-865f-0b2ff0208e2d#__toc286047922

=SUM(IF(LEN(TRIM(E100:E105))=0,0,LEN(TRIM(E100:E105))-LEN(SUBSTITUTE(E100:E105," ",""))+1))
Avatar billede natkatten Mester
16. marts 2015 - 17:58 #5
Det er en matriksformel. Du skal afslutte den med Ctrl+Shift+Enter. Det gør at den opererer på hele området.

Desuden så kan jeg forstå, at du anvender engelsk Excel. Så skal den tilrettes a la eksemplet fra Microsoft.
Avatar billede natkatten Mester
16. marts 2015 - 18:01 #6
Hvis du vil tælle cellerne op hver for sig, behøves ingen matriksformel. Så kan du fsva E100 benytte denne:

=LÆNGDE(E100)-LÆNGDE(UDSKIFT(UDSKIFT(UDSKIFT(E100;
" ";"");".";"");",";""))+1

I engelsk Excel så hedder LÆNGDE LEN og UDSKIFT hedder SUBSTITUTE. Bemærk at mens vi i Danmark benytter semikolon som skilletegn, så benyttes i US/UK komma. De skal så også ændres.
Avatar billede Kast20 Seniormester
16. marts 2015 - 18:37 #7
natkatten: Ok den returnerer et tal nu, den er dog ikke helt præcis. Når cellerne er helt tomme står der "6" i cellen og når der f.eks. står "Test - Test" i celle E100 imens de andre er tomme returnerer den "8".
Avatar billede Kast20 Seniormester
16. marts 2015 - 18:57 #8
Skal måske også lige nævne at "-" bindestreg og "1" heller ikke bør tælles med som kilde-ord.
Avatar billede natkatten Mester
16. marts 2015 - 18:58 #9
Det kan jeg godt se - har ikke testet den grundigt nok
Avatar billede natkatten Mester
16. marts 2015 - 19:00 #10
Og du skal have helt styr på, hvad der ikke skal tælles med. Nu er vi vist foreløbig oppe på disse 5: <mellemrum>, komma, punktum, bindestreg og 1.
Avatar billede Kast20 Seniormester
16. marts 2015 - 19:04 #11
1 = Tal generelt :-)
Avatar billede Kast20 Seniormester
16. marts 2015 - 19:05 #12
Hvis der er andre end dem, kan jeg evt. selv udvide formlen med flere senere.

<mellemrum>, komma, punktum, bindestreg og tal
Avatar billede natkatten Mester
16. marts 2015 - 20:22 #13
Får ikke kigget mere på denne. Har fundet dette, som du (eller andre) kan arbejde ud fra, hvis det skal være en formel:

http://www.ozgrid.com/Excel/count-words.htm

Ellers er VBA en mulighed også.
Avatar billede Kast20 Seniormester
16. marts 2015 - 22:50 #14
En anden der vil hjælpe?
Avatar billede xl-Enthusiast Ekspert
17. marts 2015 - 15:01 #15
Med dine data i A1:A10 vælg A1:A10 og kør følgende kode:

Sub clean_it()
Dim sStr As String, i As Long, sStr1 As String
Dim sChar As String, rng As Range
For Each rng In Selection
    sStr = rng.Value
      For i = 1 To Len(sStr)
        sChar = Mid(sStr, i, 1)
        If sChar Like "[0-9]" Then
        Else
            If sChar = "." Or sChar = "," Or sChar = "-" Then
            Else
              sStr1 = sStr1 & sChar
            End If
        End If
      Next
   
    rng.Value = sStr1
   
    sStr1 = ""
Next
End Sub

Indsæt herefter følgende matrixformel i B1 og kopier ned til B10:

=SUM(IF(MID(TRIM(A1);ROW($A$1:OFFSET($A$1; LEN(TRIM(A1))-1;0));1)=CHAR(32);1;0))+1

Dansk:
=SUM(HVIS(MIDT(FJERN.OVERFLØDIGE.BLANKE(A1);RÆKKE($A$1:FORSKYDNING($A$1; LÆNGDE(FJERN.OVERFLØDIGE.BLANKE(A1))-1;0));1)=TEGN(32);1;0))+1
Avatar billede xl-Enthusiast Ekspert
17. marts 2015 - 17:02 #16
Formlen i #15 er unødig kompliceret. Brug denne her (matrix)formel i stedet for:

=SUMPRODUCT(LEN(TRIM(A1:A100))-LEN(SUBSTITUTE(A1:A100;" ";"")) + 1 - NOT(ISTEXT(A1:A100)))

Den summerer alle ord i A1:A100.
Avatar billede xl-Enthusiast Ekspert
17. marts 2015 - 22:02 #17
Rettelse til formlen i #16:

=SUMPRODUCT(LEN(TRIM(A1:A100))-LEN(SUBSTITUTE(A1:A100;" ";""))+1)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester