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

regels toevoegen op juiste plaats

Status
Niet open voor verdere reacties.

mariannevanh

Terugkerende gebruiker
Lid geworden
14 dec 2004
Berichten
2.085
Ik heb 2 bestanden elk met 3.500.000 regels; elke kolom is één bestand. Deze heb ik ingelezen in Excel (en verdeeld over de bladen omdat er max. ca. 1.000.000 regels op één blad kunnen).
Als voorbeeld heb ik een klein Exceloverzichtje gemaakt met enkele regels.
In het bestandje in kolom A komt een aantal caravans voor. Deze zijn per abuis uit het bestandje in kolom B verdwenen.
Hoe kan ik kolom B zo reconstrueren dat de caravans er weer in staan? De overige verschillen ("motor") hoeven niet te worden overgenomen.

Vriendelijke groet,
Marianne
 

Bijlagen

  • hm 20220814.xlsx
    8,8 KB · Weergaven: 20
Dit roept een aantal vragen op:

  • Zijn de originele bestanden tekstbestanden?
  • Zijn alle "caravans" uit kolom B verdwenen?
  • Zijn alle "motoren" uit kolom B verdwenen?
  • Is het dan niet voldoende om alle "motoren" uit kolom A te verwijderen?
  • Moet het resultaat weer terug naar een (tekst)bestand?
  • En waarom via Excel waarin maar 1.048.576 (2^20) rijen passen?
 
Om mijn vraag te verduidelijken heb ik een case ontworpen die enigszins afwijkt van de werkelijke situatie. Het echte bestand is een zgn. gedcom-bestand, maar dat kostte me zoveel bewerkingen (anonimiseren, overbodige data verwijderen) dat een simpele case aan de hand van dummy gegevens voor mij handiger was.

[*]Zijn de originele bestanden tekstbestanden?
Het zijn twee grote tekstbestanden (platte ASCII) met de extensie .ged
[*]Zijn alle "caravans" uit kolom B verdwenen?
Ja en die moeten dus terug
[*]Zijn alle "motoren" uit kolom B verdwenen?
Met niet-vermelde items moet niets gebeuren.
[*]Is het dan niet voldoende om alle "motoren" uit kolom A te verwijderen?
nee
[*]Moet het resultaat weer terug naar een (tekst)bestand?
Het moet een .ged-bestand blijven.
[*]En waarom via Excel waarin maar 1.048.576 (2^20) rijen passen?
Als jij een andere optie hebt, waarin ik bij voorkeur ook nog "voorwaarden" kan aangeven (=als(deel(a1;3;4)="auto"...). dan houd ik mij aanbevolen.
 
Laatst bewerkt:
filter kolomA op bevat "caravan"
kopieer deze en plak ze onderaan kolomB
 
Laatst bewerkt:
Genealogisch uitwisselingsformaat dus.
Wat stelt de "caravan" voor in genealogische termen?
Hebben alle "caravans" hetzelfde voorloopnummer?
Onder welke genealogische categorie vallen ze?
Is de volgorde van de nummers 4 binnen dezelfde persoon van belang, zoals hieronder bijvoorbeeld met nummer 2 aangegeven?


Ofwel mag je
2 SURN Williams
2 GIVN Robert Eugene
ook schrijven als
2 GIVN Robert Eugene
2 SURN Williams


Zoals ik nu inschat denk ik dat je de bestanden in een database moet importeren om er vervolgens query's en eventuele andere logica op los te laten. Jouw sterk versimpelde voorbeeldje bootst de werkelijkheid denk ik niet goed na.
Maar in het kader van de AVG kun je de bestanden niet delen vermoed ik.

Aanvulling:
Nog even wat zitten denken.
Voorgestelde logica:


Neem eerste persoon uit kolom A
Als die een "caravan" heeft dan deze persoon zoeken in kolom B en de "caravan" op de juiste plaats invoegen.
Volgende persoon uit kolom A.
Als die een "caravan" heeft dan deze persoon zoeken in kolom B vanaf de huidige locatie (dus niet vanaf het begin) en de "caravan" op de juiste plaats invoegen.


Herhaal bovenstaande tot je klaar bent.


Als de beide bestanden niet al te krankzinnig groot zijn moeten ze in twee array's passen waarop je zoek- en invoegacties kunt uitvoeren. Het resultaat wegschrijven naar een bestand waarbij de oorspronkelijke regelinhoud gehandhaafd blijft.
Dan is een database niet nodig en kun je met bijvoorbeeld een Python scriptje een heel eind komen.
 
Laatst bewerkt:
Genealogisch uitwisselingsformaat dus.
Voor niet-genealogen zegt "caravan" iets meer dan "SURN"... Ik noemde dus gewoon een willekeurig woord.

Ofwel mag je
2 SURN Williams
2 GIVN Robert Eugene
ook schrijven als
2 GIVN Robert Eugene
2 SURN Williams
Ja, dat mag, maar alleen omdat de GIVN en SURN van deze persoon bij elkaar horen.

Ik ga er nog op studeren.

filter kolomA op bevat "caravan"
kopieer deze en plak ze onderaan kolomB

In mijn verhaal heb ik het niet duidelijk aangegeven (alleen in de titel), maar de volgorde is wel van belang, dus is onderaan plaatsen niet de bedoeling. Bedankt voor het meedenken.
 
Ik denk dat de suggestie van Sylvester-Ponte in post #4 een goede is.

Als je Excel 365 of 2021 hebt dan kan dat ook met een formule in cel B7:
Code:
=FILTER(A1:A9;ISGETAL(VIND.SPEC("caravan";A1:A9)))
Deze formule doet automatisch wat Sylvester voorstelt in post #4.

NB: Als de caravans ook uit kolom A moeten worden verwijderd gebruik dan in een lege kolom deze formule en vervang kolom A door de waarden van deze formule (met plakken speciaal waarden)
Code:
=FILTER(A1:A9;NOT(ISGETAL(VIND.SPEC("caravan";A1:A9))))

[Wel even een cc'tje maken van je bestand, want als je je vergist kan je makkelijk weer terug.]
 

Bijlagen

  • hm 20220814 HD.xlsx
    9,7 KB · Weergaven: 14
Laatst bewerkt:
Marianne, als je die van Hans gebruikt uit post #9
maak er waarden van (formules verwijderen door kopiëren plakken als waarden)
zet er rijnummertjes naast met =VERGELIJKEN(B1;$A$1:$A$9;0)
dan sorteren op de rijnummertjes.

het kan ook met een macro maar dan moet je een meer gelijkend bestand sturen met bvb meerdere tab_bladen en invullingen.
 

Bijlagen

  • hm 20220814 HD en sp.xlsx
    9,3 KB · Weergaven: 11
Laatst bewerkt:
hier heb je een macrootje voor 1 blad (het kan op vele manieren maar dit is er 1 van)
 

Bijlagen

  • hm 20220814 sp.xlsm
    19,7 KB · Weergaven: 12
Genealogische bestanden mogen toch allen maat gebruik maken van openbare gegevens ?
Darrop is de AVG niet van toepassing.
Warrom dan niet een (deel) van een .ged bestand geplaatst ?
De fout lijkt opgetreden bij de conversie naar Excel, dus daar moet ook de restauratie plaatsvinden.

Ik zie in #3 geen 'case'
 
Laatst bewerkt:
Dus gewoon een paar duizend regels van beide .ged bestanden uploaden. Met een voorbeeldje van hoe de eerste tientallen regels van het gerestaureerde .ged bestand er uit moeten zien. Is namelijk wel een leuke uitdaging.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan