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

zoeken met veel voorwaarden

Status
Niet open voor verdere reacties.

mariannevanh

Terugkerende gebruiker
Lid geworden
14 dec 2004
Berichten
2.125
Ik heb een zgn. gedcom-bestand (bestand voor de uitwisseling en syntaxis van stambomen).
In dit bestand komt een groot aantal plaatscodes (_LOC) voor zonder plaatsnaam (PLAC).
De opbouw van het tekstbestand is hiërarchisch: elke regel begint met een getal, gevolgd door een spatie en een tag, evt. gevolgd door weer een spatie en nadere informatie.
Verdere detaillering volgt op de regels daaronder waarbij een lager niveau kan worden aangegeven.

Het voert te ver om in dit topic diep in te gaan op de gedcom-structuur.

Bij een groot aantal gebeurtenissen in het stamboombestand staat geen plaatsnaam vermeld, maar wel een code.
Het gedcom-bestand heb ik opgeknipt in delen van 1.000.000 regels (in verband met de maximale werkbladgrootte van Excel) en zo op 3 tabbladen van een Excel-werkblad ingelezen. Hiervoor gebruik ik dus uitsluitend kolom A.

Nu ben ik aan het broeden op een formule die mij laat zien als er een "_LOC" wordt genoemd, terwijl er in de regels daarboven (en je hoeft niet verder terug te zoeken dan de regel die begint met "1") géén "PLAC" staat. Dat mag wat mij betreft worden bepaald met een formule in kolom B en worden aangegeven met bijvoorbeeld een "x".
Wie helpt mij aan een dergelijke formule?

Alvast hartelijk dank voor het meedenken.

Vriendelijke groet,
Marianne
 

Bijlagen

Marianne, geef in het bestand ook even aan wat er uit moet komen.
 
Laatst bewerkt:
Marianne,

Ik heb je vorige topic ook een klein beetje gevolgd en mij lijkt het verstandig (dat was ook al een voorstel van AlexCEL) om je eens te verdiepen in Power Query.
Dan hoef je niets te verdelen over 3 tabbladen e.d.
Tevens is het dan ook, dacht ik, mogelijk om rechtstreeks via Aldfaer het e.e.a. te up/downloaden.
 
In cel B20 heb ik een "x" geplaatst.
Die "x" staat daar omdat er tussen regel 17 (de regel die begint met "1") en de huidige regel (regel 20) geen regel met "PLAC" staat.
Uiteraard wil ik dit via een formule bereiken.
 

Bijlagen

Marianne,

Ik heb je vorige topic ook een klein beetje gevolgd en mij lijkt het verstandig (dat was ook al een voorstel van AlexCEL) om je eens te verdiepen in Power Query.
Dan hoef je niets te verdelen over 3 tabbladen e.d.
Tevens is het dan ook, dacht ik, mogelijk om rechtstreeks via Aldfaer het e.e.a. te up/downloaden.

Power Query zou misschien best een optie zijn, alleen voordat ik dat onder de knie heb...
Aldfaer is een prachtig programma. Ik heb het jaren gebruikt, maar omdat ik in mijn stambomen veel samenwerk met andere mensen die ook aan dezelfde stamboom werken, heb ik gekozen voor een webbased stamboomprogramma en maak ik nu gebruik van webtrees. De door mij gebruikte _LOC werkt overigens niet in Aldfaer.
 
Zoiets voor B2?
Code:
=ALS(ISGETAL(VIND.SPEC("_LOC";A1));ALS(SOMPRODUCT(--ISGETAL(VIND.ALLES("PLAC";INDIRECT("A"&ZOEKEN(2;1/(--LINKS(A$1:A1;2)=1);RIJ($1:1))&":A"&RIJ()-1))))=0;"x";"");"")
Maar dit voor een miljoen rijen.... zet je PC maar een nachtje aan.
 
Hiermee lukt dat:

Code:
Sub M_snb()
   sn = Cells(1).CurrentRegion
   redim sp(ubound(sn).0)
   ReDim st(1)
   
   For j = 1 To UBound(sn)
      If Val(sn(j, 1)) = 1 Then st(0) = j
      If Left(sn(j, 1), 6) = "2 PLAC" Then st(1) = sn(j, 1)
      If Val(sn(j, 1)) = 3 And st(1) = "" Then sp(j,0) = "snb"
      If Val(sn(j, 1)) = 3 Then ReDim st(1)
   Next
   
  cells(1,3).resize(ubound(sn))=sp
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan