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

Lege cellen identificeren

Status
Niet open voor verdere reacties.

Eometh

Nieuwe gebruiker
Lid geworden
10 jan 2017
Berichten
2
Hallo iedereen,

Ik zit met een zeer grote Excel file met de volgende variabelen: Land, jaartal, en een reeks aantal variabelen waarin ik geïnteresseerd ben. Ik wil weten voor welke jaartallen wel gegevens heb en voor welke niet. Dus ik wil telkens start en eindjaar + de jaartallen ertussen waarbij er gegevens ontbreken. In bijlage zet ik een voorbeeld. Zou iemand mij kunnen zeggen hoe ik autmoatisch de jaartallen voor elk land kan identificeren waarvoor er lege cellen zijn? M.a.w. hoe kan ik bv. snel weten dat voor belgië de gegevens beschikbaar zijn voor variabele x2 van het jaar 2000 t.e.m. 2010 behalve in 2004,2005 en 2006?

Alvast bedankt.
 

Bijlagen

Beste,
""
Selecteer de kolomkoppen en schakel de filter in. Naast elke kolomtitel verschijnt een driehoekje. Klik daar op, deselecteer "alles selecteren" en vink "lege cellen" aan. Jij krijgt in de kolom waarop je een filter hebt toegepast de rijen met een lege cel.
 
Hallo,

Dat is misschien op te lossen met een draaitabel.
Zie de tabbladen in het voorbeeld.

Mvg
Peter
 

Bijlagen

Helaas is het niet zo sompel. Het zijn enorm veel kolommen, en als ik telkens voor elk land, elke variabele een filter moet toepassen, en dan nog eens de jaartallen overschrijven zal dit veel te veel tijd nemen. Ik dacht eerder iets met een if functie te doen maar ik was er niet zeker van. Met een draaitabel is het probleem niet direct opgelost :s
 
Gooi er een macro'tje tegen aan.

Code:
Sub VenA()
  Dim j As Long, jj As Long, t As Long, ar, ar1
  With Sheet1.Cells(2, 1).CurrentRegion
    ar = .Value
    ReDim ar1(.SpecialCells(4).Count, 2)
    For j = 3 To UBound(ar)
      For jj = 2 To UBound(ar, 2)
        If ar(j, jj) = "" Then
          ar1(t, 0) = ar(1, Int((jj - 2) / 6) * 6 + 2)
          ar1(t, 1) = ar(j, 1)
          ar1(t, 2) = ar(2, jj)
          t = t + 1
        End If
      Next jj
    Next j
  End With
  Sheet2.Cells(1).Resize(UBound(ar1), 3) = ar1
End Sub
 

Bijlagen

@VenA,

Stel dat ik deze bijzonder korte routine wil toepassen op de kolommen H tot M in een totaal andere toepassing, welke parameters moet ik aanpassen? Ik heb geprobeerd jouw code te ontleden maar dat lukt mij niet.
 
@tkint, Deze code is voor het voorbeeldbestandje. Zonder jouw bestand gezien te hebben kan ik er weinig zinnigs over zeggen. Je kan een variabele gebruiken en dan met <F8> door de code lopen om te zien welke waarde deze variabele krijgt.

Code:
If ar(j, jj) = "" Then
  tkint = Int((jj - 2) / 6) * 6 + 2
  ar1(t, 0) = ar(1, tkint)
 
Beste,

Bedankt voor de waardevolle tip om een variabele te gebruiken bij het doorlopen van de code.
 
Ook een methode.
Code:
 ar1(t, 0) = ar(1, [COLOR=#ff0000]Int[/COLOR]((jj - 2) [COLOR=#ff0000]/[/COLOR] 6) * 6 + 2)

Code:
ar1(t, 0) = ar(1, ((jj - 2) [COLOR=#ff0000]\[/COLOR] 6) * 6 + 2)
 
@HSV, Wat is het verschil tussen het gebruik van de / en de \ in VBA?
 
De \ leidt tot een getal zonder breuken achter de komma, i.t.t. /

5\2=2
5/2=2.5
 
Dank je. Nu nog een plekje zoeken in mijn grijze massa om dit soort subtiele verschillen vast te leggen.:)
 
Ik vind \ een ontbrekende operator in Excel.
Ik begrijp niet waarom ze die niet hebben opgenomen.
(net zoals andersom de Excel funktie Trim niet in VBA bestaat: alle meervoudige spaties tot 1 reduceren).
 
Laatst bewerkt:
Staat wel in de Help van Excel 2007.

Typ; "\, operator" of "integer operator".
Wordt gebruikt om een getal te delen door een ander getal en geeft als resultaat een integer.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan