Štetje določenih znakov v celici

Pomoč pri izdelavi makrov
Odgovori
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Štetje določenih znakov v celici

Odgovor Napisal/-a sonofagun »

Pozdravljeni.

Zanima me, kako bi izgledal zapis, ki prešteje točno določene znake (npr. ".") v celici? Na vašem forumu sem že našel nekaj na temo štetja, ampak ne za točno določen znak. Na spletu sem našel zapis "=LEN(A1)-LEN(SUBSTITUTE(A1,A2,""))", kjer je A1 celica z izbranim tekstom in A2 znak, ki ga iščem. Ampak mi zapis ni čisto jasen...

Prosil bi za pomoč.

Hvala.

Lp, Gregor
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Štetje določenih znakov v celici

Odgovor Napisal/-a admin »

Da, koda, ki ste jo našli je čisto pravilna. Naredi pa sledeče:
  1. Izračuna dolžino celotnega besedila
  2. V besedilu iskane znake pobriše (no konkretno jih zamenja s praznimi znaki) a praktično to pomeni da jih izbriše
  3. Izračuna dolžino novega besedila
  4. Razlika obeh dolžin je število iskanih znakov ;)
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Štetje določenih znakov v celici

Odgovor Napisal/-a sonofagun »

Sem "skombiniral" to kodo:

Koda: Izberi vse

Sub preveri()

Dim Count As Integer
Dim Target As String
Dim N As Integer
 
'določim zadnjo aktivno vrstico
t = ActiveSheet.Range("B65536").End(xlUp).Row

For i = 3 To t
    Count = 0
    Target = "."
    N = InStr(1, Cells(i, 2).Value, Target)
         While N <> 0
            Count = Count + 1
            N = InStr(N + 1, Cells(i, 2).Value, Target)
         Wend
If Count > 2 Then
MsgBox "Preveč nivojev!"
GoTo konec
End If
Next

konec:
End Sub
Sem preizkusil na nekaj primerih in zaenkrat dela.

Hvala za odgovor.

lp
Odgovori