• 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.

draaitabel op matrix?

Status
Niet open voor verdere reacties.

peewnee

Gebruiker
Lid geworden
8 sep 2006
Berichten
7
In een excelsheet heb ik een matrix van 100 regels met 10 kolommen, met in elke cel een woord. Nu wil ik de frequentie van de afzonderlijke woorden in deze matrix bepalen en dat wil maar niet lukken. Een enkele kolom is geen probleem om een draaitabel op los te laten, maar is iets dergelijks ook mogelijk met meerdere kolommen?

greetz
 
Ha Paul,

aantal.als werkt wel, maar dan moet ik in de formule al weten welke woord ik wil tellen. Ik ben eigenlijk op zoek naar iets, dat zelf een overzicht maakt van alle woorden en daarbij de frequentie weergeeft
 
Mission impossible? Het lijkt er wel op...ondertussen een aantal bestanden handmatig verwerkt..mocht iemand in de toekomst nog ideeen hebben dan hoor ik die graag
 
Hallo Peewnee,

Je hebt geen voorbeeld bijgevoegd dus heb ik iets moeten maken en dat heb ik dan maar even met getallen gemaakt, maar dat doet niets af aan het resultaat.

Op blad 1 heb ik in het bereik A1:J100 jouw "woorden" gezet.
M1:V100 is een hulpbereik, waarin ik de oplossing van jouw probleem heb weergegeven.

De formules staan in de groene cellen (wel even doortrekken over het gehele bereik: M2 naar beneden, N1 naar rechts en N3 naar beneden en naar rechts).

Let even op de geel gekleurde cellen voor de resultaten voor de waardes in die cellen.
 

Bijlagen

Laatst bewerkt:
Hallo Pewnee,

De nacht heeft mij geleerd dat ik je, in zijn presentatie, wel een erg basic oplossing heb gegeven. Daarom dus nu maar even de oplossing met een cosmetische aanpassing.
Blad 1 is de basic oplossing, Blad 2 die met de cosmetische aanpassing.
 

Bijlagen

Code:
Sub tst()
    c0 = "|"
    sq = [A1].CurrentRegion
    For Each cl In sq
        If InStr(c0, cl) = 0 Then c0 = c0 & cl & ";" & WorksheetFunction.CountIf([A1].CurrentRegion, cl) & "|"
    Next
    sq = Split(c0, "|")
    With Cells([A1].CurrentRegion.Rows.Count + 2, 1).Resize(UBound(sq) + 1)
        .Value = WorksheetFunction.Transpose(sq)
        .TextToColumns , , , , False, True, False, False, False
    End With
End Sub
 
Laatst bewerkt:
Beste Thoralf en snb:

Ik ben zeer verrast door de eenvoud van jullie oplossing. Had zelf niet eens verwacht dat er een oplossing was. Het resultaat van de subroutine van snb voldoet zeer goed aan mijn verwachtingen en hier ga ik ook zeker mee aan de slag. De methode van Thoralf heeft door zijn eenvoud ook een ander probleem opgelost., dus TOP!

bedankt voor jullie bijdrage

greetz
Peewnee
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan