Een vraagje van een Excel beginner voor de kenners hier:
Stel ik moet twee Excel rekenbladen met elkaar gaan combineren en daaruit data kopiëren. Data uit excel2 moet in excel1 komen.
Concreet:
Rekenblad excel1 bevat e-mail adressen
Rekenblad excel2 bevat dezelfde e-mail adressen en voornaam + naam.
Nu wil ik excel1 de juiste gegevens (voornaam + naam) krijgen bij het e-mail adres. De lijsten zijn uiteraard "willekeurig" in lengte.
'k Heb hier een soort stappenplan gevonden, maar 'k geloof dat het niet past met de versie van Excel die ik gebruik (versie 2010)
http://www.lochem.net/excel/1001.html
Google heeft veel resultaten.. Dus bos & bomen probleem.
Kan iemand mij uit de brand helpen met een werkend voorbeeld of een link naar een tutorial die past voor mij?
Mijn dank zal groot zijn!
Excel vraagje...(Query?)
-
- Pro Member
- Berichten: 385
- Lid geworden op: 25 mei 2006, 01:30
- Uitgedeelde bedankjes: 42 keer
- Bedankt: 6 keer
- heist_175
- Elite Poster
- Berichten: 13045
- Lid geworden op: 07 okt 2010, 09:35
- Locatie: Kempen
- Uitgedeelde bedankjes: 433 keer
- Bedankt: 856 keer
Je maakt een vlookup van werkblad1 naar werkblad2
Stel:
- werkblad1: email (kolom A)
- werkblad2: email+naam+tel (kolom A, B, C)
en beide werkbladen hebben niet hetzelfde aantal etc
dan doe je het volgende:
in cel B1 van werkblad1 zet je: =vlookup(A1;Werkblad2!A:C;2;FALSE)
-> Excel gaat in "werkblad2" in kolom A zoeken naar een match met "werkblad1/A1"
--> eens een match gevonden, gaat ie in cel B1 de waarde van de 2de kolom geven uit de range van werkblad 2 (in dit geval "A" +1 = "B" -> kolom B)
---> de "FALSE" duidt op een exacte match: [email protected] zal geen correcte match geven als je in werkblad1/A1 "[email protected]" had staan
in cel C1 van werkblad1 zet je: =vlookup(A1;Werkblad2!A:C;3;FALSE)
Stel:
- werkblad1: email (kolom A)
- werkblad2: email+naam+tel (kolom A, B, C)
en beide werkbladen hebben niet hetzelfde aantal etc
dan doe je het volgende:
in cel B1 van werkblad1 zet je: =vlookup(A1;Werkblad2!A:C;2;FALSE)
-> Excel gaat in "werkblad2" in kolom A zoeken naar een match met "werkblad1/A1"
--> eens een match gevonden, gaat ie in cel B1 de waarde van de 2de kolom geven uit de range van werkblad 2 (in dit geval "A" +1 = "B" -> kolom B)
---> de "FALSE" duidt op een exacte match: [email protected] zal geen correcte match geven als je in werkblad1/A1 "[email protected]" had staan
in cel C1 van werkblad1 zet je: =vlookup(A1;Werkblad2!A:C;3;FALSE)
-
- Pro Member
- Berichten: 385
- Lid geworden op: 25 mei 2006, 01:30
- Uitgedeelde bedankjes: 42 keer
- Bedankt: 6 keer
Na wat puzzelen, blijkt het in de Nederlandstalige Excel het te gaan over VERT.ZOEKEN()
'k Ga daar eens mee experimenteren.
Toch nog enkele bedenkingen:
- werkblad 1, met de e-mails, kan zowel 25 als 10 000 adressen bevatten. De formule telkens zover slepen zal wat onhandig zijn vrees ik?
- werkblad twee is een bestand die telkens van naam verandert... Telkens de formule's gaan aanpassen?
Vandaar dat ik even dacht aan een query, zodat e.e.a. geautomatiseerd kan verlopen.
Maar hoe daar aan te beginnen... Heb hier helemaal geen kaas van gegeten.
'k Ga daar eens mee experimenteren.
Toch nog enkele bedenkingen:
- werkblad 1, met de e-mails, kan zowel 25 als 10 000 adressen bevatten. De formule telkens zover slepen zal wat onhandig zijn vrees ik?
- werkblad twee is een bestand die telkens van naam verandert... Telkens de formule's gaan aanpassen?
Vandaar dat ik even dacht aan een query, zodat e.e.a. geautomatiseerd kan verlopen.
Maar hoe daar aan te beginnen... Heb hier helemaal geen kaas van gegeten.
-
- Moderator
- Berichten: 2548
- Lid geworden op: 18 dec 2010, 11:56
- Uitgedeelde bedankjes: 445 keer
- Bedankt: 215 keer
Je tabel omzetten in een 'lijst'
Kan je doen door de volledige tabel te selecteren en dan CtRl+L
Als je nu een formule invoert in een kolom, zal deze die automatisch dynamisch aanpassen, ook al boeg je rijen / kolommen toe.
Kan je doen door de volledige tabel te selecteren en dan CtRl+L
Als je nu een formule invoert in een kolom, zal deze die automatisch dynamisch aanpassen, ook al boeg je rijen / kolommen toe.
-
- Deel van't meubilair
- Berichten: 29849
- Lid geworden op: 28 okt 2003, 09:17
- Uitgedeelde bedankjes: 446 keer
- Bedankt: 1985 keer
Ik heb ook een bedenking... Excel is een rekenblad, geen database. Misschien eens overwegen de juiste tool te gebruiken ?Koelreuteria schreef:Toch nog enkele bedenkingen:
Ik herinner me zo secretaresses die hun brieven in Excel maakten omdat het eenvoudiger was met kolommen te werken
-
- Elite Poster
- Berichten: 1584
- Lid geworden op: 23 nov 2008, 20:38
- Uitgedeelde bedankjes: 99 keer
- Bedankt: 120 keer
Excel heeft wel degelijk enkele basis-database functies en is uitstekend geschikt voor eenvoudige database bewerkingen en zoals OP nodig heeft.
Complexere zaken dienen natuurlijk in een echte database afgehandeld.
Complexere zaken dienen natuurlijk in een echte database afgehandeld.
-
- Pro Member
- Berichten: 385
- Lid geworden op: 25 mei 2006, 01:30
- Uitgedeelde bedankjes: 42 keer
- Bedankt: 6 keer
Weet ik, maar Access zit niet in het Office pakket die ik gebruik...r2504 schreef:Ik heb ook een bedenking... Excel is een rekenblad, geen database. Misschien eens overwegen de juiste tool te gebruiken ?
-
- Moderator
- Berichten: 16487
- Lid geworden op: 28 apr 2008, 11:22
- Locatie: Waregem
- Uitgedeelde bedankjes: 820 keer
- Bedankt: 2998 keer
Ik ben het eigenlijk niet eens met deze kritiek.
Een timmerman die zal natuurlijk zijn professionele verstekzaag gebruiken, ook een loodgieter zal de juiste tools gebruiken voor zijn koppelingen, enz ...
Maar een doe-het-zelver behelpt zich met het materiaal dat hij heeft, en zal geen circelzaag kopen om één plankje te zagen
Akkoord dat Excel geen echte Database is, maar de Database functies die Excel bevat zijn toch redelijk uitgebreid, en waarschijnlijk méér dan genoeg voor wat de OP wil.
Secretaresses die hun brieven in Excel maken is natuurlijk grappig, die worden geacht Word Experts te zijn.
Maar voor een eenvoudig document die tabellen bevat (vb factuurke) zal ik ook Excel gebruiken ...
Een timmerman die zal natuurlijk zijn professionele verstekzaag gebruiken, ook een loodgieter zal de juiste tools gebruiken voor zijn koppelingen, enz ...
Maar een doe-het-zelver behelpt zich met het materiaal dat hij heeft, en zal geen circelzaag kopen om één plankje te zagen
Akkoord dat Excel geen echte Database is, maar de Database functies die Excel bevat zijn toch redelijk uitgebreid, en waarschijnlijk méér dan genoeg voor wat de OP wil.
Secretaresses die hun brieven in Excel maken is natuurlijk grappig, die worden geacht Word Experts te zijn.
Maar voor een eenvoudig document die tabellen bevat (vb factuurke) zal ik ook Excel gebruiken ...
VoIP: WeePee (vaste nummers geporteerd), Sipgate.de, Sipgate.co.uk, MegaVoip (uitgaand België).
Provider: Proximus Start (60/4 mbps down/up).
Modem/Router: Fritz!Box 7590 int, OS 07.39-97058 BETA, profiel 100/35.
Telefoon centrale: Euracom 181 achter FritzBox So.
TV: Telenet CI+, Fritz!DVB-C.
Provider: Proximus Start (60/4 mbps down/up).
Modem/Router: Fritz!Box 7590 int, OS 07.39-97058 BETA, profiel 100/35.
Telefoon centrale: Euracom 181 achter FritzBox So.
TV: Telenet CI+, Fritz!DVB-C.
-
- Deel van't meubilair
- Berichten: 29849
- Lid geworden op: 28 okt 2003, 09:17
- Uitgedeelde bedankjes: 446 keer
- Bedankt: 1985 keer
Geen idee welke versie je gebruikt maar in Office365 is het sinds kort terug beschikbaar (is een tijd eruit genomen).Koelreuteria schreef:Weet ik, maar Access zit niet in het Office pakket die ik gebruik...
Ik ken de exacte omstandigheden ook niet en weet niet of dit werk gerelateerd is... maar ik krijg kippevel als gebruikers data uit andere systemen gaan trekken en deze hun eigen leven begint. Eerst en vooral zijn dat enorme risico's (als een laptop gestolen wordt ligt plots eventueel gevoelige data op straat), en erger is dat de wijzigingen op dergelijke data nooit nog terug geraken naar het centrale systeem. Dit in combinatie met ondersteuning naar toekomstige versies (bv. mensen die iets gemaakt hadden in Access waarbij deze dan plots verdwijnt uit Office365) is het de nachtmerrie voor iedere IT afdeling.
Voor privé doeleinden spelen die dingen natuurlijk niet en zijn de beschikbare tools/kennis ook vaak veel beperkter.
-
- Elite Poster
- Berichten: 1017
- Lid geworden op: 24 aug 2012, 11:49
- Uitgedeelde bedankjes: 28 keer
- Bedankt: 84 keer
De andere kant is natuurlijk dat een gebruiker soms dingen nodig heeft die niet zomaar uit het centraal systeem kunnen komen of waarvoor IT geen tijd heeft of de middelen niet krijgt.
Zoals door anderen gezegd, vlookup met eventueel een macro moeten volstaan in dit geval denk ik.
Zoals door anderen gezegd, vlookup met eventueel een macro moeten volstaan in dit geval denk ik.
-
- Pro Member
- Berichten: 385
- Lid geworden op: 25 mei 2006, 01:30
- Uitgedeelde bedankjes: 42 keer
- Bedankt: 6 keer
1. 'k Heb enkel de beschikking over Excel 2010...r2504 schreef:Geen idee welke versie je gebruikt maar in Office365 is het sinds kort terug beschikbaar (is een tijd eruit genomen).Koelreuteria schreef:Weet ik, maar Access zit niet in het Office pakket die ik gebruik...
Ik ken de exacte omstandigheden ook niet en weet niet of dit werk gerelateerd is... maar ik krijg kippevel als gebruikers data uit andere systemen gaan trekken en deze hun eigen leven begint. Eerst en vooral zijn dat enorme risico's (als een laptop gestolen wordt ligt plots eventueel gevoelige data op straat), en erger is dat de wijzigingen op dergelijke data nooit nog terug geraken naar het centrale systeem. Dit in combinatie met ondersteuning naar toekomstige versies (bv. mensen die iets gemaakt hadden in Access waarbij deze dan plots verdwijnt uit Office365) is het de nachtmerrie voor iedere IT afdeling.
Voor privé doeleinden spelen die dingen natuurlijk niet en zijn de beschikbare tools/kennis ook vaak veel beperkter.
2. vrijwilligerswerk...
3. er komen twee .csv bestanden aan te pas.
4. ik ken en deel je bezorgdheid i.v.m. dataconsistentie, maar in deze situatie speelt het niet.
5. data die ik ontvang is geanonimiseerd en tb0ne heeft een punt.
6. concreet probleem even opnieuw schetsen, maar nu meer concreet, minder "familiaal":
Ik moet (... mag...) twee Excel rekenbladen met elkaar gaan combineren en daaruit data kopiëren.
Data uit excel2 moet in excel1 komen.
Concreet:
Rekenblad excel1 bevat enkel een reeks e-mail adressen die ook in excel2 voorkomen.
Rekenblad excel2 bevat uitgebreide lijst aan e-mail adressen en een vier cijferige code.
Nu wil ik excel1 de juiste nummercode "plakken" uit excel2 aan het het bijhorende e-mail adres die voorkomt in excel1. De lijsten zijn uiteraard "willekeurig" in lengte.
De tip om verticaal te zoeken is een gouden start, maar 'k zou het wat meer willen automatiseren, zoals hier is beschreven:
http://www.lochem.net/excel/1001.html
Maar het stappenplan past blijkbaar niet voor Excel 2010.
Vandaar mijn vraag of hier iemand mij op het juiste pad - of een werkend stappenplan - kan zetten.
-
- Elite Poster
- Berichten: 1584
- Lid geworden op: 23 nov 2008, 20:38
- Uitgedeelde bedankjes: 99 keer
- Bedankt: 120 keer
VLOOKUP (of vert.zoeken() ) dat is toch gewoon volledig automatisch? De correcte formule 1000x kopiëren dat gaat binnen 5 seconden !Koelreuteria schreef: Ik moet (... mag...) twee Excel rekenbladen met elkaar gaan combineren en daaruit data kopiëren.
Data uit excel2 moet in excel1 komen.
Concreet:
Rekenblad excel1 bevat enkel een reeks e-mail adressen die ook in excel2 voorkomen.
Rekenblad excel2 bevat uitgebreide lijst aan e-mail adressen en een vier cijferige code.
Nu wil ik excel1 de juiste nummercode "plakken" uit excel2 aan het het bijhorende e-mail adres die voorkomt in excel1. De lijsten zijn uiteraard "willekeurig" in lengte.
De tip om verticaal te zoeken is een gouden start, maar 'k zou het wat meer willen automatiseren, zoals hier is beschreven:
http://www.lochem.net/excel/1001.html
Maar het stappenplan past blijkbaar niet voor Excel 2010.
Vandaar mijn vraag of hier iemand mij op het juiste pad - of een werkend stappenplan - kan zetten.
hierbij de uitgeschreven formule voor nederlandstalige excel:
=VERT.ZOEKEN(A2;[excel2.xlsx]Blad1!$A$1:$B$1000;2;ONWAAR)
dat is zoeken naar mail uit cel A2 in de range uit de EXCEL2 tussen A1 en B1000 ,met mail in kolom A en code in kolom B
ONWAAR is nodig omdat bij onbestaand mailadres het dichtst benaderend mail adres gekozen wordt, hetgeen uiteraard verkeerd is.
uitleg over vertikaal zoeken : http://www.exhelp.be/formules/functies/348
en een extraatje: andere manier van zoeken: http://www.exhelp.be/formules/functies/969
INDEX() en VERGELIJKEN() als alternatief voor VERT.ZOEKEN()
Héél interessant, beetje moeilijker dan vertikaal zoeken maar heeft meer mogelijkheden
Het is een combinatie van INDEX() en VERGELIJKEN()
-
- Starter
- Berichten: 22
- Lid geworden op: 29 jun 2013, 09:22
- Uitgedeelde bedankjes: 5 keer
- Bedankt: 1 keer
ik gebruik VERT.ZOEKEN ook vaak, werkt gewoon makkelijker in excel om iets snel in mekaar te steken dan in access.
nog enkele tips :
- Nooit bang zijn om kopiëren en plakken te gebruiken in excel
- zet je vert.zoeken in een ALS(ISNB(),,) als je een propere lijst als resultaat wil (zie voorbeeld 1)
- Het meegeven van een rijen-bereik is aangewezen voor het zoekblad (snelheid) maar neem die ruim genoeg, als het echt om een lijst met een onbekende willekeurige lengte gaat is het echter niet verplicht (zie in voorbeeld 1 : A:B ipv $A$1:$B$9999)
- Indien je het excel bestand niet telkens wil hernoemen of de gegevens wil plakken kan je met de INDIRECT functie hele leuke dingen doen (zie voorbeeld 2, in cel H1 vul je in dit geval de naam van het excel bestand in waarin je wil zoeken bijvoorbeeld [excel2.xlsx]).
Voorbeeld 1 :
=ALS(ISNB(VERT.ZOEKEN(A2;[excel2.xlsx]Blad1!A:B;2;ONWAAR));"";VERT.ZOEKEN(A2;[excel2.xlsx]Blad1!A:B;2;ONWAAR))
Voorbeeld 2 :
=VERT.ZOEKEN(A2;INDIRECT(TEKST.SAMENVOEGEN($H$1;"Blad1!$A$1:$B$9999"));2;ONWAAR)
nog enkele tips :
- Nooit bang zijn om kopiëren en plakken te gebruiken in excel
- zet je vert.zoeken in een ALS(ISNB(),,) als je een propere lijst als resultaat wil (zie voorbeeld 1)
- Het meegeven van een rijen-bereik is aangewezen voor het zoekblad (snelheid) maar neem die ruim genoeg, als het echt om een lijst met een onbekende willekeurige lengte gaat is het echter niet verplicht (zie in voorbeeld 1 : A:B ipv $A$1:$B$9999)
- Indien je het excel bestand niet telkens wil hernoemen of de gegevens wil plakken kan je met de INDIRECT functie hele leuke dingen doen (zie voorbeeld 2, in cel H1 vul je in dit geval de naam van het excel bestand in waarin je wil zoeken bijvoorbeeld [excel2.xlsx]).
Voorbeeld 1 :
=ALS(ISNB(VERT.ZOEKEN(A2;[excel2.xlsx]Blad1!A:B;2;ONWAAR));"";VERT.ZOEKEN(A2;[excel2.xlsx]Blad1!A:B;2;ONWAAR))
Voorbeeld 2 :
=VERT.ZOEKEN(A2;INDIRECT(TEKST.SAMENVOEGEN($H$1;"Blad1!$A$1:$B$9999"));2;ONWAAR)
-
- Deel van't meubilair
- Berichten: 29849
- Lid geworden op: 28 okt 2003, 09:17
- Uitgedeelde bedankjes: 446 keer
- Bedankt: 1985 keer
De simpelste oplossing is... delete Excel1 en rename Excel2 naar Excel1Koelreuteria schreef:Rekenblad excel1 bevat e-mail adressen
Rekenblad excel2 bevat dezelfde e-mail adressen en voornaam + naam.
Nu wil ik excel1 de juiste gegevens (voornaam + naam) krijgen bij het e-mail adres.
Het is maar hoe je het bekijkt... onderstaande SQL is zelfs korter dan je Excel formule.schizm schreef:ik gebruik VERT.ZOEKEN ook vaak, werkt gewoon makkelijker in excel om iets snel in mekaar te steken dan in access.
update table1 set name = (select name from table2 where mail = table1.mail)
-
- Starter
- Berichten: 22
- Lid geworden op: 29 jun 2013, 09:22
- Uitgedeelde bedankjes: 5 keer
- Bedankt: 1 keer
Die query is inderdaad kort en simpel maar tegen de tijd dat je de data in access-tabellen hebt zitten is die excel al lang klaar. (als de oorspronkelijke gegevens al in access staan heb je natuurlijk wel gelijk)