Avatar billede Noam-9 Praktikant
27. april 2017 - 12:37 Der er 6 kommentarer

Transformere tabel

Hej
Fra en xml-forbindelse har jeg har en tabel der indeholder informationer fordelt på flere linier. Dem vil jeg gerne have samlet så alle informationer om samme produkt er på én linie.
Da regnearket skal kunne opdateretes via xml-forbindelsen tænker jeg at filtereringen/omformatteringen skal ende med en ny tabel på et andet faneblad.

Jeg har forsøgt at bruge pivot, og vopslag funktionerne men kan slet ikke komme rigtigt igang.

Et eksempel på hvad der skal opnåes er indsat herunder. Forslag modtages meget gerne

Mvh
Noam

Name;Facet;Code;
Fillmores Feta;;FF34;
;Cow;FF34;
;- Curated;FF34;
Garamonds Gouda;;GG12;
;Goat;GG12;
;- Curated;GG12;
Manchego Mucho;;MM56;
;Cow;MM56;
;- Curated;MM56;
Mariella Mozzarella;;MM98;
;Cow;MM98;
;- Fresh;MM98;
Mascarpone Melange;;MM66;
;Cow;MM66;
;- Fresh;MM66;
Camembert V6;;CV45;
;Cow;CV45;
;- Semi;CV45;
Picodon Bue;;PBUE;
;Goat;PBUE;
;- Semi;PBUE;

skulle gerne kunne blive til:

Fillmores Feta;FF34;Cow;Curated
Garamonds Gouda;GG12;Goat;Curated
Manchego Mucho;MM56;Cow;Curated
Mariella Mozzarella;MM98;Cow;Fresh
Mascarpone Melange;MM66;Cow;Fresh
Camembert V6;CV45;Cow;Semi
Picodon Bue;PBUE;Goat;Semi
Avatar billede Noam-9 Praktikant
27. april 2017 - 12:39 #1
Nøglen er selvfølgelig kolonnen 'Code', der binder en række i kolonnen 'Name' sammen med to rækker i kolonnen 'Facet'.

/Noam
Avatar billede acore Ekspert
27. april 2017 - 15:14 #2
Kan man regne med, at der altid er præcis 3 linier med tekst per produkt?

Er en brugerdefineret funktion i VBA ok?
Avatar billede Mads32 Ekspert
27. april 2017 - 17:10 #3
Hvis dine data altid er opstillet som vist i dit eksempel, kan det løses med nogle tekstformler.

Se vedhæftet fil

https://www.dropbox.com/s/41ssamsio6e4ase/Transformer%20tabel.xlsx?dl=0
Avatar billede Noam-9 Praktikant
27. april 2017 - 22:27 #4
Acore; Ja, der altid kun de tre kolonner, det kan jeg styre i xml-forbindelsen. Og vba er helt fint, det bruger jeg allerede til nogle af de beregninger der ligger senere.

Mads32; tak for hints, jeg prøver at se om jeg kan få det til at virke med de data jeg har.
Avatar billede Noam-9 Praktikant
27. april 2017 - 23:23 #5
Acore; -og ja, der er også altid kun tre linier pr produkt.

Det lykkedes mig i øvrigt at bruge nogle af Mads32 hints til at lave nedenstående kolonne.

Kolonne2
Fillmores Feta
Cow
Curated
Garamonds Gouda
Goat
Curated
Manchego Mucho
Cow
Curated
Mariella Mozzarella
Cow
Fresh
Mascarpone Melange
Cow
Fresh
Camembert V6
Cow
Semi
Picodon Bue
Goat
Semi
Avatar billede acore Ekspert
28. april 2017 - 08:07 #6
Med denne lille funktion

Function MYEXTRACT(r As Range, n As Long)
    Dim line1() As String, line2() As String, line3() As String
    Dim offset As Long
   
    offset = (n - 1) * 3
    line1 = Split(r.offset(offset, 0).Value, ";")
    line2 = Split(r.offset(offset + 1, 0).Value, ";")
    line3 = Split(r.offset(offset + 2, 0).Value, ";")
   
    MYEXTRACT = line1(0) + ";" + line1(2) + ";" + line2(1) + ";" + Right(line3(1), Len(line3(1)) - 2)
End Function

Kan du med dine data startende i A2 (linien med overskrift regnes ikke med), hente fx den tredie tekst med

=MYEXTRACT(A2; 3)

Skulle gerne give

Manchego Mucho;MM56;Cow;Curated

Den er forholdsvis fleksibel, så jeg er sikker på, at du selv kan tilrette den, når/hvis behovet opstår.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester