Avatar billede palmanimal Nybegynder
28. august 2002 - 08:15 Der er 25 kommentarer og
1 løsning

Udskiftning af cifre

Hej.
Har et regneark med ca. 8000 linier. I kolonne A står der et 8 cifret produktnr. der er en kombinatione af tal og bogstaver. Jeg skal have erstattet det sidste ciffer, altså nr. 8. med at andet.
Der hvor der før stod 1 skal der stå G, der hvor der stod 2 skal der stå H, 3->I, 4->J, 7->K, 8->L.
Hvordan gør man nemmest det ?
Jeg har prøvet med en makro der virker, men det er lidt besværligt.
Gerne et hurtigt svar.
:-)
Avatar billede b_hansen Novice
28. august 2002 - 08:19 #1
Hvis der kun er tale om max 8 forskellige cifre, der skal skiftes, kan det gøres med =HVIS()
Avatar billede b_hansen Novice
28. august 2002 - 08:22 #2
Det kunne eksempelvis se sådan ud

=hvis(højre(A1;1)="1";venstre(a1;7)&"G";Hvis(højre(A1;1)="2";venstre(a1;7)&"H";=hvis(højre(A1;1)="3";venstre(a1;7)&"I";=hvis(højre(A1;1)="4";venstre(a1;7)&"J";=hvis(højre(A1;1)="7";venstre(a1;7)&"K";=hvis(højre(A1;1)="8";venstre(a1;7)&"L";""))))))
Avatar billede palmanimal Nybegynder
28. august 2002 - 08:23 #3
Det er max. 6 forskellige. Jeg havde håbet på en løsning, da jeg ikke er nogen Xl ørn...
Avatar billede b_hansen Novice
28. august 2002 - 08:23 #4
jeg har da givet dig en løsning...........
Avatar billede palmanimal Nybegynder
28. august 2002 - 08:25 #5
Hvordan får jeg den til at køre som en løkke ?
Skal jeg kopiere den lange smøre ind i celle A1?
What to do ??
Avatar billede b_hansen Novice
28. august 2002 - 08:27 #6
der er ikke tale om en løkke, men derimod en formel.

Formlen tilføjes i en ny kolonne, og cellereferencen A1 rettes til den celle, hvor du har dit produktnummer. Herefter kopierer du formlen ned i dit regneark. Og vupti, så skulle du gerne have dit nye produktnummer *S*
Avatar billede palmanimal Nybegynder
28. august 2002 - 08:33 #7
har tilføjet ny kolonne og rettet A1 til A2 og kopieret cellen ned. Virker ikke !!
Avatar billede palmanimal Nybegynder
28. august 2002 - 08:36 #8
dumt, dumt. Det er en UK udgave jeg har. Kan jeg rette ventsre til left og højre til right og hvis til if ?
28. august 2002 - 08:38 #9
Prøv denne makro.

Public Sub ReplaceChar()
    Dim rCell As Range
   
    For Each rCell In Range("A1").CurrentRegion.Columns(1).Cells
        Select Case Right(rCell.Value, 1)
            Case 1
                rCell.Value = Replace(rCell.Value, 1, "G")
            Case 2
                rCell.Value = Replace(rCell.Value, 2, "H")
            Case 3
                rCell.Value = Replace(rCell.Value, 3, "I")
            Case 4
                rCell.Value = Replace(rCell.Value, 4, "J")
            Case 7
                rCell.Value = Replace(rCell.Value, 7, "K")
            Case 8
                rCell.Value = Replace(rCell.Value, 8, "L")
        End Select
    Next rCell
    Set rCell = Nothing
End Sub
Avatar billede janvogt Praktikant
28. august 2002 - 08:42 #10
Eller denne formel:


=REPLACE(A1;8;1;VLOOKUP(VALUE(RIGHT(A1;1));E6:F14;2;FALSE))

E6 til E14 indeholder værdierne 1-9 og
F6 til F14 indeholder værdierne G,H,I,J,5,6,K,L,9

Formlen lægges ind i B1 og kopieres ned.
Avatar billede janvogt Praktikant
28. august 2002 - 08:43 #11
På dansk hedder formlen:
=ERSTAT(A1;8;1;LOPSLAG(VÆRDI(HØJRE(A1;1));E6:F14;2;FALSK))
Avatar billede janvogt Praktikant
28. august 2002 - 08:45 #12
Hov, så ikke lige du har en UK-udgave.
Så kan du bruge mit første svar.
Avatar billede janvogt Praktikant
28. august 2002 - 08:46 #13
Hov2, hvis den skal kopieres ned skal den lige hedder:
=REPLACE(A1;8;1;VLOOKUP(VALUE(RIGHT(A1;1));$E$6:$F$14;2;FALSE))
Avatar billede palmanimal Nybegynder
28. august 2002 - 08:46 #14
Flemming :
Det var dette har jeg ledte efter men...
D63111F1 bliver til D63GGGFG men skulle have været :

D63111FG
Din macro tager altså ikke højde for at det kun er det 8. ciffer der skal skiftes.

Jan:
jeg har ikke prøvet din endnu
28. august 2002 - 08:47 #15
Du kan jo blot tilføje nogle flere CASE linier - det er nemt.
Avatar billede palmanimal Nybegynder
28. august 2002 - 08:49 #16
Ja, det lyder jo nemt. men hvordan får jeg fortalt den at den kun skal kigge på 8. ciffer ??
28. august 2002 - 08:53 #17
Public Sub ReplaceChar()
    Dim rCell As Range
   
    For Each rCell In Range("A1").CurrentRegion.Columns(1).Cells
        If Len(rCell.Value) = 8 Then
            Select Case Right(rCell.Value, 1)
                Case 1
                    rCell.Value = Replace(rCell.Value, 1, "G")
                Case 2
                    rCell.Value = Replace(rCell.Value, 2, "H")
                Case 3
                    rCell.Value = Replace(rCell.Value, 3, "I")
                Case 4
                    rCell.Value = Replace(rCell.Value, 4, "J")
                Case 7
                    rCell.Value = Replace(rCell.Value, 7, "K")
                Case 8
                    rCell.Value = Replace(rCell.Value, 8, "L")
            End Select
        End If
    Next rCell
    Set rCell = Nothing
End Sub
28. august 2002 - 08:54 #18
Jeg fik jo ikke læst din kommentar ordenligt først.... :-) skulle tro at det er mandag morgen!!!
Avatar billede palmanimal Nybegynder
28. august 2002 - 08:55 #19
Stadigt det samme galt. Macroen skifter alle cifre
Avatar billede b_hansen Novice
28. august 2002 - 08:58 #20
hmmm.... man skal ikke være væk i mange minutter, før det går helt grassat ;-)

Men for at svare på dit spørgsmål fra kl. 08.36.34, så er svaret ja. Hvis erstattes af IF, Højre af Right og venstre af Left. Og så vidt jeg hsuker, skal semikolon ændres til komma....
28. august 2002 - 08:59 #21
Nej - det er ikke rigtigt - har du fået slettet den gamle. Her sker kun noget HVIS længden af celle-værdien er 8
Avatar billede palmanimal Nybegynder
28. august 2002 - 09:01 #22
Har slettet den gamle. Stadigt samme problem...
28. august 2002 - 09:02 #23
rigtigt - det gør den jo også.......Zzzzzzzzzzzzz
28. august 2002 - 09:04 #24
Public Sub ReplaceChar()
    Dim rCell As Range
   
    For Each rCell In Range("A1").CurrentRegion.Columns(1).Cells
        If Len(rCell.Value) = 8 Then
            Select Case Right(rCell.Value, 1)
                Case 1
                    rCell.Value = Left(rCell.Value, 7) & "G"
                Case 2
                    rCell.Value = Left(rCell.Value, 7) & "H"
                Case 3
                    rCell.Value = Left(rCell.Value, 7) & "I"
                Case 4
                    rCell.Value = Left(rCell.Value, 7) & "J"
                Case 7
                    rCell.Value = Left(rCell.Value, 7) & "K"
                Case 8
                    rCell.Value = Left(rCell.Value, 7) & "L"
            End Select
        End If
    Next rCell
    Set rCell = Nothing
End Sub
Avatar billede palmanimal Nybegynder
28. august 2002 - 09:18 #25
tak for hjælpen alle.
Jan : din replace virker ikke
Avatar billede janvogt Praktikant
28. august 2002 - 09:23 #26
Jo, selvfølgelig virker den.
Den er testet ......
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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