• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

functie excel

Status
Niet open voor verdere reacties.

gerdd

Gebruiker
Lid geworden
11 mei 2004
Berichten
5
van een tabel met verschillende reeksen (een rij is een reeks), wil ik berekenen hoe vaak de waarde verandert. bijvoorbeeld de volgende reeks: 1,2,2,2,3,4,3. deze verandert vier keer. (of: 2,1,2,1 verandert drie keer)weet iemand de bijbehorende functie in excel? (ik moet duizenden van deze reeksen analyseren, dus dat is wat veel werk met de hand)

bvd!
gerd
 
Aanvullende informatie

Ja, die functie weet ik wel ;-)

Alleen even de aanvullende vraag:
- staan de reeksen (als: 1,2,2,2,3,4,3) in 1 cel, of
- staat elke waarde in een aparte cel (bijv. A1: 1, A2: 2, A3: 2, etc.)
 
de waarden staan in aparte cel: A1=1, B1=2, C1=1 etc.

bedankt alvast!

gerd
 
Hoi Gerd,

Op het andere forum is de vraag al beantwoord door Luc, maar nog een andere oplossing via dit form:

=somproduct((A1:X-1<>B1:X)*1)+aantalarg(A1:X;kolommen(A1:X))-1

Waarbij X een laatste cel in het bereik is, bijvoorbeeld Z1 en X-1 wordt dan Y1 (1 kolom ervoor).

Aantalarg wordt toegevoegd om het mogelijk te maken om reeksen van ongelijke lengte met elkaar te vergelijken. In tegenstelling tot Luc trek ik er standaard 1 van af en tel er 1 bij op als de reeks het maximumbereik heeft.

Jeroen
 
Gerd,

Was mijn antwoord op het Office-Forum niet voldoende?
Indien niet, zou je dit toch mogen melden, dan kan je ook verder geholpen worden.
Hier nogmaals mijn antwoord, zodat de nieuwsgierigen ook hier het antwoord kennen.


Stel dat de reeks staat in cel A1 tot F1.
Zet dan in cel G1 volgende matrix-formule:

=SOM(ALS(B1:F1<>A1:E1;1;0))-ALS(AANTALARG(A1:F1)<>6;1;0)

Invoeren en afsluiten met de toetsencombinatie CTRL + Shift + Enter.

Deze formule kan je doortrekken naar onder.

Op volgende zaken moet je letten:

Eerste bereik: B1:F1 ......... Dit is het ganse bereik van de eerste reeks op uitzondering van de eerste cel
Tweede bereik: A1:E1 ........ Dit is het ganse bereik van de eerste reeks op uitzondering van de laatste cel.
Derde bereik : A1:F1 ......... Dit is het ganse bereik van de eerste reeks.

6 ...... Dit zijn het aantal cellen dat de eerste reeks zou kunnen tellen.

Dit wil zeggen dat alle reeksen maximum 6 cellen groot kunnen zijn (Het mag minder zijn... het mag niet meer zijn). Tuurlijk kan je de formule aanpassen voor een groter bereik.

Nog één opmerking: Indien er geen gegevens staan in een rij geeft deze formule de foutieve uitkomst: -1. Dit is normaal, en ik ga van de veronderstelling uit dat dit geen probleem kan zijn. Anders moet de formule nog wat langer worden.

Luc
 
bedankt voor snelle reacties!

ik krijg alleen wel foutmelding...ik heb engelse versie van excel, wellicht ligt daar de fout? (ik heb wel functies vertaald, maar wellicht zijn er andere problemen..)

grtgrd
 
Geen al te fraaie macro (snel gemaakt), maar hij werkt wel, ervan uitgaande dat de reeksen niet langer zijn dan 8 cijfers (indien dat wel het geval is, de resultaten in een andere kolom plaatsen).

Sub test()
Dim y As Integer, aantal As Integer, x As Long
x = 1
Do While Cells(x, 1).Value <> ""
y = 1: aantal = 0
Do While Cells(x, y).Value <> ""
If Cells(x, y).Value <> Cells(x, y + 1).Value Then
aantal = aantal + 1
End If
y = y + 1
Loop
Cells(x, 11).Value = aantal - 1
x = x + 1
Loop
End Sub

fra
 
Had dat dan gezegd!
Mijn oplossing met die formule is echt zéér goed. Werkt sneller dan macro's, en past zich onmiddelijk aan bij het wijzigen van de brongegevens.

Hier heb je een bijlage.
Ik vermoed dat je gewoon vertikt hebt om er een matrix-formule van de maken (CTRL - Shift - Enter)

Luc

p.s. vergeet niet uw vraag als afgehandeld te zetten (Ook op andere forums), indien je met dit antwoord geholpen bent.
 

Bijlagen

luc, ook jou formule werkt!
k had wel ctr-shft-enter gedaan, maar blijkbaar niet gelijk ingedrukt... (wist niet dat {} zouden moeten verschijnen)
sorry voor gedoe, nogmaals erg bedankt voor hulp

grtgrd
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan