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

mogelijke tekstcombinaties weergeven

Status
Niet open voor verdere reacties.

radar

Gebruiker
Lid geworden
13 jan 2006
Berichten
242
Excellenties,

In Kolom A en B staan tekstgegevens; in kolom E had ik graag als resultaat alle mogelijke combinaties van tekst kolom A gescheiden door "/"en tekst kolom B onder elkaar geplaatst.
Het aantal gegevens in A en B zijn variabel.

Is dit met een formule te bewerkstelligen ?
Evt. met hulpkolom
Als alternatief is dit met VB te realiseren ?

Voorkeur gaat uit naar formule.Bekijk bijlage Alle combinaties weergeven.xlsx

Zie bijlage.


Met vriendelijke groet,

Radar
 
Waarom is B9 leeg?

Anders
Code:
Sub VenA()
  ar = Sheets(1).Cells(1).CurrentRegion
  For j = 2 To UBound(ar)
    For jj = 2 To UBound(ar)
      c00 = c00 & "|" & ar(j, 1) & "/" & ar(jj, 2)
    Next jj
  Next j
  Sheets(1).Cells(1, 10).Resize(UBound(Split(c00, "|"))) = Application.Transpose(Split(Mid(c00, 2), "|"))
End Sub
 
En dit werkt ook als er lege cellen tussen zitten:
Code:
Sub cobbe()
Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row + 1).ClearContents
regel = 2
For c01 = 2 To Range("A" & Rows.Count).End(xlUp).Row
 If Not Cells(c01, "A") = "" Then
  For c02 = 2 To Range("B" & Rows.Count).End(xlUp).Row
   If Not Cells(c02, "B") = "" Then
    Cells(regel, "E") = Cells(c01, "A") & "/" & Cells(c02, "B")
     regel = regel + 1
   End If
  Next
 End If
Next
Columns(5).AutoFit
End Sub
 
Laatst bewerkt:
Met iets minder interactie met het blad

Code:
Sub VenA1()
  With Sheets(1)
    ar = .Columns(1).SpecialCells(2)
    ar1 = .Range("B2:B" & .Cells(Rows.Count, 2).End(xlUp).Row)
    For j = 2 To UBound(ar)
      For jj = 1 To UBound(ar1)
        c00 = c00 & "|" & ar(j, 1) & "/" & ar1(jj, 1)
      Next jj
    Next j
    .Cells(1, 10).Resize(UBound(Split(c00, "|"))) = Application.Transpose(Split(Mid(c00, 2), "|"))
  End With
End Sub
 
optie met formule, met wel als voorwaarde dat de lijsten aaneengesloten rijen omvat dus geen lege cellen zoals tussen "Tijgers en leeuwen" en "slangen"

Code:
=ALS(RIJ()<AANTALARG($A$2:$A$800)*AANTALARG($B$2:$B$800)+2;(VERSCHUIVING($A$2;GEHEEL((RIJ()-2)/AANTALARG($B$2:$B$800));0)&"/"&VERSCHUIVING($A$2;REST(RIJ()-2;AANTALARG($B$2:$B$800));1));"")

waarbij
- De ALS test of het rijnummer kleiner is dan het max aantal combinaties +2 (+2 omdat 2 de startrij is)
- De eerste verschuivingsfunctie zorgt dat "apenheul" net zo vaak herhaald wordt als er Dieren zijn. waarbij de geheel functie zorgt dat het rijnummer alleen wijzigt als alle opties zijn getoond
- De tweede verschuivingsfunctie zorgt dat telkens 1 rij lager wordt gekeken. waarbij de Rest functie zorgt voor de herhaalde teller tussen 0-7 rijverschuivingen
 

Bijlagen

Allen dank voor deze snelle reactie!
Ik was in de gelukkige omstandigheden, dat ik wat vroeger weg kon op het werk.
Terwijl ik onderweg was, zijn er al een aantal oplossingen aangedragen. Top !
Ik ga er morgenochtend mee aan de slag...

Het kan in praktijk inderdaad zo zijn, dat er een veld bij de "dieren" leeg is, als ik de data krijg aangeleverd.
Wellicht dat ik een tussenstap moet invoegen wil ik met formule oplossing verder gaan.

Ik meld mij weer..
 
Excellenties,

De aangedragen oplossingen hebben me weer geholpen, waarvoor dank ! :thumb:
Zoals in vraagstelling al aangegeven, ging mijn voorkeur uit naar een oplossing met een formule, liever dan VBA.
Toch ook dank voor de aangeboden oplossingen met macro's.

Ik kan weer verder aan de slag !

Radar
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan