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

Enkel ingevulde kolommen weergeven...?

Status
Niet open voor verdere reacties.

Mieketie

Gebruiker
Lid geworden
16 sep 2006
Berichten
92
Hey Specialisten,

Het is weeral lang geleden maar nu zit ik me toch met een dilemma.

Wat heb ik: een lijst met 11500 rijen en 330 kolommen
Wat wil ik: een lijst met unieke waarden uit die rijen en enkel de kolomnamen van alle ingevulde kolommen die voor deze rijwaarde van toepassing zijn.

Dus eigenlijk moet ik weten welke kolommen voor een bepaalde rijnaam is ingevuld. :-/
En ik vind het niet.

Voorbeeld in bijlage
Blad1 is de array (althans een klein stukje er van)
Blad2 is het voorbeeld dat ik nodig heb.

Heeft iemand een idee ?
 

Bijlagen

  • Map1.xlsx
    14,6 KB · Weergaven: 34
Probeer het eens met deze macro

Code:
Sub VenA()
  ar = Sheets("Blad1").Cells(1).CurrentRegion
  ReDim ar1(UBound(ar), 1)
  For j = 2 To UBound(ar)
    ar1(j - 2, 0) = ar(j, 1)
    For jj = 2 To UBound(ar, 2)
      If ar(j, jj) <> "" Then ar1(j - 2, 1) = ar1(j - 2, 1) & ar(1, jj) & "|"
    Next jj
  Next j
  With Sheets("Blad2")
    .Cells(1, 10).Resize(UBound(ar1), 2) = ar1
    .Columns(11).TextToColumns Range("K1"), xlDelimited, , , , , , , True, "|"
    .Columns.AutoFit
  End With
End Sub
 
Probeer het eens met deze macro

Code:
Sub VenA()
  ar = Sheets("Blad1").Cells(1).CurrentRegion
  ReDim ar1(UBound(ar), 1)
  For j = 2 To UBound(ar)
    ar1(j - 2, 0) = ar(j, 1)
    For jj = 2 To UBound(ar, 2)
      If ar(j, jj) <> "" Then ar1(j - 2, 1) = ar1(j - 2, 1) & ar(1, jj) & "|"
    Next jj
  Next j
  With Sheets("Blad2")
    .Cells(1, 10).Resize(UBound(ar1), 2) = ar1
    .Columns(11).TextToColumns Range("K1"), xlDelimited, , , , , , , True, "|"
    .Columns.AutoFit
  End With
End Sub



Zozo, dat was snel geregeld. Alle respect.
Hiermee kan ik een heel eind verder.

Heel erg bedankt VenA en alvast een prettig weekend.
 
Of:
Code:
Sub hsv()
sv = Sheets("Blad1").Cells(1).CurrentRegion
  Set d = CreateObject("scripting.dictionary")
  For i = 2 To UBound(sv)
   For j = 2 To UBound(sv, 2)
     d(sv(i, 1)) = d(sv(i, 1)) & IIf(sv(i, j) = "", "", IIf(InStr(d(sv(i, 1)), sv(1, j)), "", sv(1, j) & "|"))
   Next j
  Next i
  With Sheets("Blad2")
    .Cells(1, 10).CurrentRegion.ClearContents
    .Cells(1, 10).Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
    .Columns(11).TextToColumns , , , , , , , , -1, "|"
    .Columns.AutoFit
  End With
End Sub
 
Of:
Code:
Sub hsv()
sv = Sheets("Blad1").Cells(1).CurrentRegion
  Set d = CreateObject("scripting.dictionary")
  For i = 2 To UBound(sv)
   For j = 2 To UBound(sv, 2)
     d(sv(i, 1)) = d(sv(i, 1)) & IIf(sv(i, j) = "", "", IIf(InStr(d(sv(i, 1)), sv(1, j)), "", sv(1, j) & "|"))
   Next j
  Next i
  With Sheets("Blad2")
    .Cells(1, 10).CurrentRegion.ClearContents
    .Cells(1, 10).Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
    .Columns(11).TextToColumns , , , , , , , , -1, "|"
    .Columns.AutoFit
  End With
End Sub

Hey Harry,

Inderdaad, deze werkt ook. Fantastisch toch dat er verschillende wegen zijn om Rome te bereiken :thumb:
Helpmij heeft zijn naam weer alle eer aangedaan dankzij jullie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan