PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelAntal tecken i följd per radAntal tecken i följd per rad
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2021-08-17 17:35
 

          A     B     C     D     E     F     G     H     I     J

1        1     2     1     1     X     X     X      2

2

 

Jag provar med Antal.Om på olika sätt men hittar inte rätt formel

I raden A1:H1 vill jag räkna ut hur många ggr 1/X/2 kommer i följd, i detta fallet ska det returneras:

Ettor i följd               

1 i följd : 1

2 i följd:  2

3 i följd:  0

osv.

Nytt inlägg
 2021-09-02 12:12
 
 Ändrad av Christian  på 2021-09-02 12:13:03

Hej hej

ledsen för sent svar. Har inte kommit på någon lösning i formler. Så fick skriva en egen function för detta. Lägg koden i en modul i Vba-editorn. 

Koden anropas därefter med exempelvis: 

=countx(A2:H2;2), Där första argumentet är området du vill undersöka, och andra argumentet är siffran/krysset. 

eller för x:

=countx(A2:H2;"x")

Function CountX(ByVal target As Range, x As String)

 

    Dim rng As Range

    Dim counter As Long

    Dim maxCount As Long

    

    For Each rng In target

        If rng = x Then

            counter = counter + 1

        ElseIf counter <> 0 Then

            If maxCount < counter Then

                maxCount = counter

            End If

            counter = 0

        End If

    Next rng

    CountX = Application.WorksheetFunction.Max(maxCount, counter)

End Function

 
Nytt inlägg
 2021-09-03 19:02
 
 Ändrad av anonymous  på 2021-09-03 19:05:17

ingen fara, behöver inte svara alls om du inte vill :-)

Jag har inte VBA men kanske dags att inskaffa så man göra lite mer, vet inte hur VBA är om det är svårt att lära sig för en "gubbe över 50"??

Har bara använt C# innan men det var för svårt för mig. Excel är betydligt lättare.

Är Vba gratis?? som a-lös funkar det inte att köpa nåt.

och finns vba editor i google spreadsheets?...kan kolla lite på internet vad jag hittar

Nytt inlägg
 2021-09-03 19:07
 
 Ändrad av Christian  på 2021-09-03 19:09:46

 Vba tillhör excel, för google gäller java/js/python. Ungefär liknande svårighetsgrad som c#

 

Nytt inlägg
 2021-09-03 19:57
 

Tack

Nytt inlägg
 2021-09-03 21:32
 

Ok, fliken för "Utvecklare" i min excel i datorn var ej aktiv, inte konstigt jag inte visste den fanns. SKa se om jag kan förstå och lära mig nåt av det....kul!

Tack för hjälpen.

Nytt inlägg
 2021-09-08 21:37
 

Den koden visar de tecken som kommit flest ggr i följd. Önskar men ska se om jag kan klura ut det själv med mer kod.

Vad jag behöver är samtliga följdresultat, inte bara de högsta antal tecken i följd.

Tips på bra grundkurs i vba?

Nytt inlägg
 2021-09-09 14:56
 

Du kan ju slå ihop det tilll en sträng, t.ex i cell B4:

 =SAMMAN(A1:H1)

och sen kan du ange antalet repetitioner i fallande ordning i kolumn A, exempel med 4a steg, cell A5:A8

4
3
2
1

I cell B5 skriver du in formeln

=BYT.UT(B4;REP("1";A5);"")

och i C5 skriver du in

=LÄNGD(B4)-LÄNGD(B5)

Kopiera ner B5 och c5 till rad 8:a

Istället för att skriva "1" så kan du naturligtvis länka

Nytt inlägg
 2021-09-10 10:43
 

Jag förstår tyvärr ingenting av det där, är helt ny på excel och har haft turen att få formlarna helt klara av Christan.

Vad menar du slå ihop till en sträng?

Jag satte upp som du skrev men får "formeln innehåller okänd text" och inget returneras

Och vad gör jag med koden i modulen i vba som Christian skrev ?

Nytt inlägg
 2021-09-10 11:21
 

 Det är en helt formelbaserad lösning och har inget med Christians VBA-lösning att göra.

Det skriv in så här

  A B C D E F G H
1 1 2 1 1 X X X 2
2                
3                
4   =SAMMAN(A1:H1)            
5 4 =BYT.UT(B4;REP("1";A5);"") =LÄNGD(B4)-LÄNGD(B5)          
6 3 =BYT.UT(B5;REP("1";A6);"") =LÄNGD(B5)-LÄNGD(B6)          
7 2 =BYT.UT(B6;REP("1";A7);"") =LÄNGD(B6)-LÄNGD(B7)          
8 1 =BYT.UT(B7;REP("1";A8);"") =LÄNGD(B7)-LÄNGD(B8)          

OBS att SAMMAN() är ganska ny, kräver att excel är max 2 år gammal. Om du har en äldre excel måste cellen i B4 göras krångligare
=SAMMANFOGA(A1;B1;C1;D1;E1;F1;G1;H1)

Oavsett hur du sammanfogar så blir resultatet blir någonting i stil med:

  A B C D E F G H
1 1 2 1 1 X X X 2
2                
3                
4   1211XXX2            
5 4 1211XXX2 0          
6 3 1211XXX2 0          
7 2 12XXX2 2          
8 1 2XXX2 1          

 

Där A-kolumnen anger hur många gånger 1:an skall repeteras (4,3,2,1). 

B-kolumen visar texten när 11 (etc) är borttaget  och 
c-kolumnen anger hur många gånger 1:or förekommer 4,3,,2,1 ggr

Dvs ungefär som du berskrev det i fråga 1 (fast "baklänges" eftersom man måste ta bort flest repetitioner först)
 

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelAntal tecken i följd per radAntal tecken i följd per rad

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter