06. december 2017 - 19:21 Der er 18 kommentarer og
1 løsning

Tæl antal af bogstaver i forskellige celler

Hej alle

Vil høre om der er nogen der kender en måde at forenkle denne formel, lige nu bruger jeg TÆL.HVIS + TÆL.HVIS + TÆL.HVIS osv. osv.
Men det bliver en ret lang formel besværlig at ændre i når antallet af bogstaver jeg benytter, så ville det være nemmere hvis det var en simpel måde hvor alle bogstaver kunne skrives på en gang i stedet for at skrive hele formlen igen og igen.

Håber der er nogen som har et godt forslag :)
Avatar billede excelent Ekspert
06. december 2017 - 20:26 #1
=SUM(LÆNGDE(A1:A5))
Afslut formel med CTRL+SHIFT+ENTER ikke kun ENTER
06. december 2017 - 20:49 #2
Må hellere gøre det mere præcis, det drejer sig nemlig om bestemte bogstaver og ikke bare antallet af bogstaver.
Avatar billede jens48 Ekspert
06. december 2017 - 22:09 #3
Skriv bogstaverne, der skal tælles i hver sin celle, lav en TÆL.HVIS formel for hver af disse  celler og læg TÆL.HVIS-cellerne sammen. Så behøver du kun at ændre bogstaverne og ikke formelen
06. december 2017 - 22:53 #4
@jens48
En god ide, dog skal jeg hive bogstaver fra mange steder som skal indsættes flere steder så jeg bliver nødt til at lave mange TÆL.HVIS alligevel, så bliver dog besværligt bare på en anden måde :)
06. december 2017 - 23:10 #5
Fandt alternativt at kunne benytte:

=SUMPRODUCT(--((criteria1)+(criteria2)>0))

Den fjerner behovet for at skulle indsætte type hver gang (eks. TÆL.HVIS), bliver stadigvæk lang fordi området skal defineres for hvert enkelt bogstav, men i det mindste kortere.
Avatar billede igoogle Forsker
07. december 2017 - 16:06 #6
=LÆNGDE((UDSKIFT(UDSKIFT(UDSKIFT(UDSKIFT(UDSKIFT(UDSKIFT(UDSKIFT(UDSKIFT(UDSKIFT(UDSKIFT(A1;0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"")))

denne fjerner værdierne i Udskift rækken med intet og du kan derfor tælle
07. december 2017 - 16:33 #7
@igoogle

Kan du lave et eksempel?, jeg kan ikke få den til at virke korrekt.
Avatar billede igoogle Forsker
08. december 2017 - 07:18 #8
09. december 2017 - 00:40 #9
@igoogle
Virker fileshare? får bare en grå side, i anden browser siger den fejl på siden.
Avatar billede excelent Ekspert
09. december 2017 - 16:46 #10
Måske en VBA funktion er løsningen ?
Hvilke bogstaver/tegn handler det om ?
Er det altid de samme ?
09. december 2017 - 17:58 #11
@excelent
Det drejer sig om små 20 bogstaver (kun enkelt bogstav i hver celle) og det er de samme der skal benyttes, men som nævnt tidligere skal de lægges sammen fra flere celler så der skal angives en "range" hvor bestemte bogstaver skal tælles sammen.
Avatar billede excelent Ekspert
10. december 2017 - 09:49 #12
Følgende funktion tæller de tegn du har valgt men kun fra 1 celle
Fik ikke funktionen med flere ikke sammenhængende celler til at virke

eks.: i en celle hvor du vil have resultat skriver du: =xCount( marker celle du vil teste og afslut med slut parantes )

Function xCount(rng As Range)
Application.Volatile
celle = rng: tal = Len(rng)
'Udskift x'erne med de bogstaver du vil tælle
tegn = Array("x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x")

For Each c In tegn
xord = Application.WorksheetFunction.Substitute(celle, c, "")
celle = xord
Next

xCount = tal - Len(celle)

End Function

----------------------------------------

Følgende makro tæller antal tegn i de celler du har markeret
koden beder dig om at markere den celle hvor du vil have resultat

eks.: marker de celler som du vil teste, start makro (evt via genvejstast)
      klik på celle hvor resultat skal være når koden beder om det


Sub CountChar()
'Udskift x'erne med de bogstaver du vil tælle
tegn = Array("x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x")

For Each celle In Selection
tal = Len(celle)

For Each c In tegn
xord = Application.WorksheetFunction.Substitute(celle, c, "")
celle = xord
Next

x = x + (tal - Len(celle))
Next

adr = Application.InputBox("Marker cellen hvor resultat skal være", "", , , , , , 8).Address
Range(adr) = x

End Sub

----------------------------------

OBS:
Husk at udskifte x'erne i begge koder
Koderne hører ikke sammen, vælg den løsning der passer bedst
10. december 2017 - 12:10 #13
@excelent

Jeg har aldrig prøvet at lave funktioner eller makroer, men det lykkedes uden problemer at teste funktionen og få den til at virke, selvom det kun er for 1 celle.

Makroen kunne jeg til gengæld ikke få til at virke, jeg får enten run time error 13 eller 424 alt efter hvad jeg prøver af løsninger.
Avatar billede excelent Ekspert
10. december 2017 - 13:13 #14
Har lagt et eks. op (kun den med makro flere celler) prøv den

http://excel.pm/Eksperten/Kenneth.xlsm
10. december 2017 - 21:46 #15
@excelent

Virker perfekt! kan den køre dynamisk så man slipper for at skulle køre makroen hver eneste gang der er tilføjelser i regnearket?
Avatar billede igoogle Forsker
11. december 2017 - 07:49 #16
https://ufile.io/4otz2 prøv denne.
11. december 2017 - 11:05 #17
@igoogle

Det virker desvære kun til enkelt celle og kan derfor ikke bruges til flere celler :(
Avatar billede excelent Ekspert
11. december 2017 - 21:12 #18
Efter noget søgning på nettet, tror jeg denne virker :

Function yCount(rng As Range)
Application.Volatile
For Each c In rng
celle = celle & c
Next

tal = Len(celle)
'Udskift x'erne med de bogstaver du vil tælle
tegn = Array("x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x")

For Each c In tegn
xord = Application.WorksheetFunction.Substitute(celle, c, "")
celle = xord
Next

yCount = tal - Len(celle)

End Function

i cellen hvor resultat skal være skriver du :

=yCount(( marker dine celler og afslut med dobbelt højreparentes ))

husk udskift x'erne i koden med de tegn du vil tælle !!!
11. december 2017 - 22:30 #19
@excelent
Har ikke prøvet at teste det fuldt ud endnu, men den lille prøve jeg lavede ser ud til at virke perfekt!
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

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