VBA Excel script (find and replace)

Permalänk

VBA Excel script (find and replace)

Hej! Har ett litet problem. Har två databaser (nu liggandes i excel) (handlar om ca 102000 rader x2)

Det är så att jag har en tabell där enbart koder och förklaring för koderna finns, och en där många data plus koderna finns. Det är så att jag hade velat slå samman dessa så att koderna byts ut mot förklaringar i den stora databasen.

Exempel:

Tabell 1:
Bilmärke; Ålder; Inlämningsdatum; Felkod1; Felkod2;
Saab; 12; 19/4/12; A1; B62

Tabell 2:
A1; Felaktig kamrem
A2; Felaktig växellåda
B62; Felaktig kardanaxel

osv osv.

Så jag skulle vilja att det istället i tabell 1 skulle stå
Saab; 12; 19/4/12; Felaktig Kamrem; Felaktig kardanaxel

Har sökt runt efter ett svar på detta, men utan någon lösning. Någon som har någon tanke på hur man skulle kunna programmera så att detta genomfördes automatiskt? tacksam för svar =)!

Visa signatur

Stationär: Ryzen 9 3900X | MSI B550 Tomahawk | EVGA GTX1080 SSC | Corsair Force MP600
Kamera: Sony A7 III |Zeiss 18mm 2.8 | Sigma 35mm 1.4 | Sony 85mm 1.8 | Tamron 28-75 2.8

Permalänk
Medlem

Var så länge sedan jag gjorde nåt VBA-script, måste det vara det? Hade det fungerat att "klona" Tabell1 -> Tabell 1.X och i den byta ut kolumnerna för A1 / B62? För då hade man kunnat lösa det lätt med hjälp av MATCH och OFFSET funktionerna. Nu är man inte nå vidare skarp på excel så det är nog garanterat inte den bästa lösningen =>

Permalänk
Medlem

Det finns en funktion som gör det du vill.

Kolla upp VTSÖK eller VLOOKUP(om du har engelsk version).

Här har du en exempelfil som visar hur det går till. Det går bra att ha tabellen till höger i annat blad eller dokument(tror jag):
http://dl.dropbox.com/u/69107008/vlookup_vts%C3%B6k_exempel.x...
Kom ihåg att "låsa" table_array med dollartecken för använder du "fill down" så kommer tabellen spåra ur.

Permalänk

Jo VLOOKUP har jag använt förr, hade dock glömt av den så tack =D!

Löste ett VBA scipt som gjorde det dock, men på ett tämligen klåpaktigt sätt som tog mycket lång tid.

VLOOKUP fungerade mycket bättre, tar dock ca 10 min på datorn i sign att göra det för en kolumn, men inte så konstigt med 102000 poster plus 10400 åtgärdskoder :P.

Vllokupkoden jag körde var : =VLOOKUP(V2;Diagnoskoder!$A$2:$B$10470;2;TRUE)

Tack =)!

Edit:

Ett problem uppstår dock, den returnerar konstant ett värde ovanför det värdet som jag vill registrera.

Exempelvis i tabellen med diagnoser, gör jag en vlookup med en cell där det står C50, returnerar den Kardanaxelfel istället för motorfel ospec(som jag skulle vilja):
C499X ; Kardanaxelfel
C500 ; Motorfel ospec
C501 ; Motorfel topplock

Någon som har någon idé?=/

Visa signatur

Stationär: Ryzen 9 3900X | MSI B550 Tomahawk | EVGA GTX1080 SSC | Corsair Force MP600
Kamera: Sony A7 III |Zeiss 18mm 2.8 | Sigma 35mm 1.4 | Sony 85mm 1.8 | Tamron 28-75 2.8

Permalänk
Medlem

Ändra TRUE till FALSE istället så ska det bli exakt.

Dvs: =VLOOKUP(V2;Diagnoskoder!$A$2:$B$10470;2;FALSE)