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

nog 1 keertje dan...

Status
Niet open voor verdere reacties.

styxeldiablo

Gebruiker
Lid geworden
17 jul 2016
Berichten
49
Goedemorgen,

Ik heb hier een aantal keer om hulp gevraagd mbt het samenvoegen van gegevens uit 2 werkbladen, niet enkel het zoeken en samenvoegen maar ook combineren van cellen met een macro lukt afzonderlijk inmiddels met de oplossingen die ik hier gekregen heb waarvoor dan ook hartelijk dank :).

Hierbij een korte omschrijving van het "probleem":

Ik heb 2 werkbladen (gegevens opgehaald van een API) met productinformatie welke ik uiteindelijk in mijn webshop (computer hardware) wil laden. Dit doe ik middels een importsheet. De importsheet bevat dus bepaalde velden die ik uit beide werkbladen moet halen. Nu doe ik dit veel handmatig met erg veel tussenstapjes in het filteren van gegevens en combineren van bepaalde cellen en ik heb het idee dat ik soms erg omslachtig bezig ben. Met regelmaat maak ik door de vele tussenstapjes weer een foutje of zie ik door de bomen het bos niet meer...
Het kost uiteraard veel tijd waardoor ik niet zo vaak de lijst kan updaten als dat eigenlijk wenselijk is en de kans dat ik zelf een foutje maak is door de vele stapjes misschien te groot. Mijn vraag is dan ook of iemand mij kan helpen/adviseren hoe ik dit het beste aan kan pakken. Ik zal proberen zo duidelijk mogelijk alle informatie te geven waarvan ik denk dat het belangrijk is en dan te beschrijven wat ik precies wil bereiken.

In de importsheet moeten de producten komen te staan met als "basis" de itemcode (kolom E "sku" in de importsheet). Deze waarden staan in het tabblad producten in kolom A en in het tabblad afbeeldingen in kolom B) en dienen als tekst gebruikt te worden (omdat anders de sku niet met een 0 kan beginnen)

De lijst met afbeeldingen heeft van de plaatjes verschillende varianten. De plaatjes hebben bijvoorbeeld 1 hoofdplaatje (isproductpicture --> als op tabblad afbeeldingen in kolom D een 1 staat is het een productplaatje).
Per plaatje is de combinatie van de velden mediaid, mediaparentid en itemcode uniek.

Daarnaast zijn er aanvullende afbeeldingen van verschillende kwaliteit. In eerste instantie heb ik alle plaatjes gebruikt waardoor er dus allerlei dezelfde afbeeldingen in mijn webshop verschijnen dan wel van verschillende kwaliteit.

Wat ik hiermee zou willen is dat er zoveel mogelijk gekozen wordt voor een plaatje met de waarde high in kolom G. Indien een itemcode deze niet heeft kiezen voor medium. Indien die er niet is low en tot slot indien die er niet is thumb.

Daarnaast gebruik ik op dit moment een macro verkregen op het forum (HSV) die uiteindelijk de kolommen combineert met een pipesymbool als scheidingsteken --> itemcode (kolom A) plaatje 1|plaatje 2|plaatje 3| etc. (kolom B)

Het eerste probleem is dus dat ik maar niet op de juiste manier de gegevens eruit krijg die ik zou willen --> Itemcode - plaatje1|plaatje2|plaatje3 waarbij er dan enkel unieke afbeeldingen van de hoogst mogelijk kwaliteit gebruikt worden.

Vervolgens wil ik in de importsheet alleen de producten hebben die als statusgroup (kolom J op tabblad producten) New heeft staan.

In de importsheet zou in kolom A een combinatie moeten komen te staan van kolommen W en Y gescheiden door een / (en het liefst voorafgaand door Shop/ al is dit laatste niet heel lastig handmatig te doen)

Kolom B van de importsheet moet de waarde hebben uit kolom F op het tabblad producten.

In de kolom C van het tabblad importsheet mag de waarde van kolom N (suggestprice) op het tabblad producten worden overgenomen.

Kolom E bevat dus de Itemcode van de andere tabbladen alleen heet de kolom hier SKU

Kolom F is gelijk aan Kolom B op tabblad producten

Kolom I moet dan het productplaatje bevatten (de plaatjes op tabblad afbeeldingen met waarde 1 in kolom D) en dan zoals aangegeven in de hoogst mogelijke resolutie.

Kolom K de overige afbeeldingen gescheiden met een | symbool --> output macro HSV maar dan gekoppeld aan de bijbehorende itemcode

Kolom M moet de waarde van kolom D (tabblad producten) bevatten

Kolom N moet de waarde bevatten van Kolom C (tabblad producten).

Bij het kopiëren van de waarden naar de importsheet moeten de gegevens dus (altijd) opgezocht worden aan de hand van de itemcode...


Ik ben heel benieuwd of iemand me hiermee voor eens en altijd uit de brand kan helpen, mits dit uiteraard allemaal mogelijk is met excel. Misschien vraag ik wel te veel :P

Hartelijke groeten,

Robert

N.B. ik gebruik office 2019 professional, ik heb wat gegevens/rijen verwijderd in het voorbeeldbestand omdat het bestand anders wat te groot werd...
 

Bijlagen

in A2
Code:
="shop/"&producten!W2&"/"&producten!Y2
en doortrekken naar beneden
in B2
Code:
=producten!F2
 
Dit kan ik uiteraard ook doen voor meerdere kolommen waarbij de waarden gewoon 1 voor 1 overgenomen kunnen worden. De kunst is dan denk ik vooral nog om de juiste afbeeldingen bij de juiste itemcodes te krijgen geloof ik... zo lijkt het ineens al een stuk minder ingewikkeld haha
 
Oke, weer een stapje dichterbij...

Ik heb de kolommen die ik letterlijk kan overnemen ingesteld zoals het antwoord van Marco...
Voor de hoofd-afbeeldingen heb ik een index vergelijken formule gebruikt...

Eerst de afbeeldingen gesorteerd zodat enkel de afbeeldingen met hoge resolutie overblijven en daarna deze formule toegepast:

HTML:
=ALS.FOUT(INDEX(Blad5!F:F;VERGELIJKEN(Blad1!E:E;Blad5!B:B;0));"")

Nu dacht ik slim te zijn en heb een ander tabblad aangemaakt zonder de plaatjes in hoge resolutie, als er dan geen plaatje in hoge resolutie is kan ik hier het plaatje uithalen wat bij de itemcode hoort...
ik dacht het als volgt te doen:

HTML:
=ALS.FOUT(INDEX(Blad5!F:F;VERGELIJKEN(Blad1!E:E;Blad5!B:B;0));"ALS.FOUT(INDEX(Blad6!F:F;VERGELIJKEN(Blad6!E:E;Blad6!B:B;0))")

Dit werkt dus niet haha...
 
je zou met een macro kunnen filteren op artikelnummer en dan de waarde Kopieren.
misschien kan een macro specialist je hierbij helpen.

Groot deel kan misschien met deze formule
Code:
=VERT.ZOEKEN(E2;afbeeldingen!B$2:F$7062;5;0)
 
Laatst bewerkt:
Producten en Afbeeldingen haal je op met Power Query (Json). Gezien je wensen is het verstandig om bij Power Query te blijven en geen vba te gebruiken. Power Query is sterk in het filteren en samenvoegen (merge, join) van tabellen. Ik heb niet je hele verhaal gelezen maar als ik het goed begrijp is de eerste stap een merge op Itemcode van New Producten met High Afbeeldingen.
 
Ik heb met een hoop gedoe het eindelijk voor elkaar gekregen om met Power Query de JSON exports naar een goed geordend werkblad te krijgen. Hierdoor heb ik me verder ook niet heel erg verdiept in de verdere mogelijkheden van Power Query simpelweg nooit meer aan gedacht haha. Onbekend maakte onbemind in dit geval :) Goeie tip! Thnx
 
Mooi. Voor anderen kan het interessant zijn om je uiteindelijke oplossing te kunnen bekijken.
 
Dat is zeker waar, op zich heb ik helemaal niet zo'n spannende oplossing... Ik gebruik op dit moment allerlei verschillende werkbladen. 1 voor de afbeeldingen met "high" 1 voor afbeelding met "medium" en met een aantal als-fout-index formules zorg ik dat de juiste afbeeldingen bij de itemcodes komen...
Zodra ik deze werkbladen vernieuw (de query verversen) neemt het blad de gegevens over waarna ik met een macro bepaalde gegevens ontdubbel en weer plak in de importeersheet... Uiteindelijk gebruik ik een stuk of 8 werkbladen en zit er nog best veel handmatig werk in... Daarnaast ben ik bezig van een andere leverancier ook producten in de lijst te verwerken, deze heeft soortgelijke categorieën in andere woorden. Loop er net tegen aan dat ik over het maximaal geneste aantal voorwaarden zit in de formule om deze gegevens juist te krijgen. Misschien eerst nog maar even een blad maken met een stukje VBA om dit voor elkaar te krijgen maar wellicht kan ik gewoon beter voor een totaal oplossing naar (een stukje) PHP code gaan kijken om de API aan te roepen en deze gegevens de database in te schieten...

Lang verhaal kort, ik wil best wat sheets uploaden zodat men kan zien wat ik gedaan heb echter vraag ik me af of iemand wijs wordt uit al mijn tabbladen en verwijzingen...
 
Klinkt erg omslachtig met kans op fouten. Met een goed power query model krijg je een workbook met één output/import sheet, zonder macro's.
(Heel simpel rechttoe rechtaan is het niet want je krijgt bewerkingen op dubbel geneste tabellen.)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan