Anzeige
Archiv - Navigation
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Durch Buchstaben codierte Preisliste entschlüsseln

Durch Buchstaben codierte Preisliste entschlüsseln
Sebastian
Hallo!
Stehe vor einem scheinbar unlösbaren Problem! :-(
Habe eine Herstellerpreisliste als .DBF zur verfügung, welche ich mit EXCEL öffnen kann. Sie enthält alle wichtigen Daten, die ich für einen Webshop benötige.
Leider sind die Preise codiert (Durch Buchstaben). Hier ein paar Beispiele:
OWNQ[ = 18.09
OVNSS = 17.21
OUNXS = 16.71
OUNST = 16.22
PQNRR = 22.10
PPNQU = 21.03
PONUT = 20.42
OXNYT = 19.82
Das heißt, Das N entspricht immer einem Komma!
Das U 1. Stelle vor dem Komma entspricht einer 6
Das O 2. Stelle v. d. Komma einer 1
....
Leider entspricht aber noch nicht einmal immer das O einer 1...
Das ist Stellenabhängig! :-(
Ich bin wirklich ratlos.
Wenn mir Irgendwer helfen könnte, wäre ich wirklich sehr dankbar. Andernfalls sind die ganzen Daten für mich nutzlos.
Vielen Dank vorab!!!!!
Sebastian
AW: Durch Buchstaben codierte Preisliste entschlüsseln
Günther
Hallo Sebastian
hier mein Lösungsvorschlag:
4 Tabellen mit den Buchstaben-Wertzuweisungen pro "Stelle"
dann mit Sverweis zusammenzählen:
Tabelle1
 ABCDEFGH
1OWNQ[18,09      
2OVNSS17,21      
3OUNXS16,71      
4OUNST16,22      
5PQNRR22,1      
6PPNQU21,03      
7PONUT20,42      
8OXNYT19,82      
9        
10        
111. Stelle vor dem Komma2. Stelle vor dem Komma1. Stelle nach dem Komma2. Stelle nach dem Komma
12W8O1Q0[9
13V7P2S2S1
14U6  X7T2
15Q2  R1R0
16P1  U4U3
17O0  Y8  
18X9      
Formeln der Tabelle
B1 : =SVERWEIS(LINKS(A1;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A1;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A1;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A1;1);G$11:H$18;2;0)/100
B2 : =SVERWEIS(LINKS(A2;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A2;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A2;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A2;1);G$11:H$18;2;0)/100
B3 : =SVERWEIS(LINKS(A3;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A3;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A3;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A3;1);G$11:H$18;2;0)/100
B4 : =SVERWEIS(LINKS(A4;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A4;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A4;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A4;1);G$11:H$18;2;0)/100
B5 : =SVERWEIS(LINKS(A5;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A5;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A5;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A5;1);G$11:H$18;2;0)/100
B6 : =SVERWEIS(LINKS(A6;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A6;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A6;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A6;1);G$11:H$18;2;0)/100
B7 : =SVERWEIS(LINKS(A7;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A7;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A7;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A7;1);G$11:H$18;2;0)/100
B8 : =SVERWEIS(LINKS(A8;1);C$11:D$18;2;0)*10+SVERWEIS(TEIL(A8;2;1);A$11:B$18;2;0)+SVERWEIS(TEIL(A8;4;1);E$11:F$18;2;0)/10+SVERWEIS(RECHTS(A8;1);G$11:H$18;2;0)/100
 
Günther
Anzeige
AW: Durch Buchstaben codierte Preisliste entschlüsseln
Sebastian
Hallo!
Nochmal!
Habe die erste Lösung mit der Tabelle ausprobiert!
Funktioniert spitze!
Vielen Dank schon mal!!!!!
Jetzt habe ich ein weiteres Problem, weil ich eben den Sachverhalt falsch beschrieben habe...
Wenn ich nun z.B. nur eine Vorkommastelle habe, dann funzt das ganze leider nicht mehr...
z.B. :ONQR
Was wäre, wenn ich drei Stellen vor Komma hätte?
Vielen Dank nochmal
AW: Durch Buchstaben codierte Preisliste entschlüsseln
Günther
Hallo Sebastian
bei verschiedenstelligen Vorgaben, würde ich jede Stelle separat ermitteln und über verketten zusammenfügen:
Tabelle1
 ABCDEFGH
1 3.Stelle vor2.Stelle vor1.Stelle vor1.Stelle nach2. Stelle nachErgebnis 
2OWNQ[0180918,09 
3OVNSS0172117,21 
4UNXS006716,71 
5OUNST0162216,22 
6APQNRR12210122,10 
7PPNQU0210321,03 
8PONUT0204220,42 
9OXNYT0198219,82 
10        
11        
121. Stelle vor dem Komma2. Stelle vor dem Komma1. Stelle nach dem Komma2. Stelle nach dem Komma
13W8O1Q0[9
14V7P2S2S1
15U6  X7T2
16Q2  R1R0
17P1  U4U3
18O0  Y8  
19X9A1    
Formeln der Tabelle
B2 : =WENN(FINDEN("N";$A2;1)>3;SVERWEIS(TEIL($A2;LÄNGE($A2)-5;1);$C$13:$D$19;2;0);0)
C2 : =WENN(FINDEN("N";$A2;1)>2;SVERWEIS(TEIL($A2;LÄNGE($A2)-4;1);$C$13:$D$19;2;0);0)
D2 : =WENN(FINDEN("N";$A2;1)>1;SVERWEIS(TEIL($A2;LÄNGE($A2)-3;1);$A$13:$B$19;2;0);0)
E2 : =SVERWEIS(TEIL($A2;FINDEN("N";A2;1)+1;1);$E$13:$F$19;2;0)
F2 : =SVERWEIS(TEIL($A2;FINDEN("N";A2;1)+2;1);$G$13:$H$19;2;0)
G2 : =(B2&C2&D2&E2&F2)/100
B3 : =WENN(FINDEN("N";$A3;1)>3;SVERWEIS(TEIL($A3;LÄNGE($A3)-5;1);$C$13:$D$19;2;0);0)
C3 : =WENN(FINDEN("N";A3;1)>2;SVERWEIS(TEIL(A3;LÄNGE(A3)-4;1);C$13:D$19;2;0);0)
D3 : =WENN(FINDEN("N";$A3;1)>1;SVERWEIS(TEIL($A3;LÄNGE($A3)-3;1);$A$13:$B$19;2;0);0)
E3 : =SVERWEIS(TEIL($A3;FINDEN("N";A3;1)+1;1);$E$13:$F$19;2;0)
F3 : =SVERWEIS(TEIL($A3;FINDEN("N";A3;1)+2;1);$G$13:$H$19;2;0)
G3 : =(B3&C3&D3&E3&F3)/100
B4 : =WENN(FINDEN("N";$A4;1)>3;SVERWEIS(TEIL($A4;LÄNGE($A4)-5;1);$C$13:$D$19;2;0);0)
C4 : =WENN(FINDEN("N";A4;1)>2;SVERWEIS(TEIL(A4;LÄNGE(A4)-4;1);C$13:D$19;2;0);0)
D4 : =WENN(FINDEN("N";$A4;1)>1;SVERWEIS(TEIL($A4;LÄNGE($A4)-3;1);$A$13:$B$19;2;0);0)
E4 : =SVERWEIS(TEIL($A4;FINDEN("N";A4;1)+1;1);$E$13:$F$19;2;0)
F4 : =SVERWEIS(TEIL($A4;FINDEN("N";A4;1)+2;1);$G$13:$H$19;2;0)
G4 : =(B4&C4&D4&E4&F4)/100
B5 : =WENN(FINDEN("N";$A5;1)>3;SVERWEIS(TEIL($A5;LÄNGE($A5)-5;1);$C$13:$D$19;2;0);0)
C5 : =WENN(FINDEN("N";A5;1)>2;SVERWEIS(TEIL(A5;LÄNGE(A5)-4;1);C$13:D$19;2;0);0)
D5 : =WENN(FINDEN("N";$A5;1)>1;SVERWEIS(TEIL($A5;LÄNGE($A5)-3;1);$A$13:$B$19;2;0);0)
E5 : =SVERWEIS(TEIL($A5;FINDEN("N";A5;1)+1;1);$E$13:$F$19;2;0)
F5 : =SVERWEIS(TEIL($A5;FINDEN("N";A5;1)+2;1);$G$13:$H$19;2;0)
G5 : =(B5&C5&D5&E5&F5)/100
B6 : =WENN(FINDEN("N";$A6;1)>3;SVERWEIS(TEIL($A6;LÄNGE($A6)-5;1);$C$13:$D$19;2;0);0)
C6 : =WENN(FINDEN("N";A6;1)>2;SVERWEIS(TEIL(A6;LÄNGE(A6)-4;1);C$13:D$19;2;0);0)
D6 : =WENN(FINDEN("N";$A6;1)>1;SVERWEIS(TEIL($A6;LÄNGE($A6)-3;1);$A$13:$B$19;2;0);0)
E6 : =SVERWEIS(TEIL($A6;FINDEN("N";A6;1)+1;1);$E$13:$F$19;2;0)
F6 : =SVERWEIS(TEIL($A6;FINDEN("N";A6;1)+2;1);$G$13:$H$19;2;0)
G6 : =(B6&C6&D6&E6&F6)/100
B7 : =WENN(FINDEN("N";$A7;1)>3;SVERWEIS(TEIL($A7;LÄNGE($A7)-5;1);$C$13:$D$19;2;0);0)
C7 : =WENN(FINDEN("N";A7;1)>2;SVERWEIS(TEIL(A7;LÄNGE(A7)-4;1);C$13:D$19;2;0);0)
D7 : =WENN(FINDEN("N";$A7;1)>1;SVERWEIS(TEIL($A7;LÄNGE($A7)-3;1);$A$13:$B$19;2;0);0)
E7 : =SVERWEIS(TEIL($A7;FINDEN("N";A7;1)+1;1);$E$13:$F$19;2;0)
F7 : =SVERWEIS(TEIL($A7;FINDEN("N";A7;1)+2;1);$G$13:$H$19;2;0)
G7 : =(B7&C7&D7&E7&F7)/100
B8 : =WENN(FINDEN("N";$A8;1)>3;SVERWEIS(TEIL($A8;LÄNGE($A8)-5;1);$C$13:$D$19;2;0);0)
C8 : =WENN(FINDEN("N";A8;1)>2;SVERWEIS(TEIL(A8;LÄNGE(A8)-4;1);C$13:D$19;2;0);0)
D8 : =WENN(FINDEN("N";$A8;1)>1;SVERWEIS(TEIL($A8;LÄNGE($A8)-3;1);$A$13:$B$19;2;0);0)
E8 : =SVERWEIS(TEIL($A8;FINDEN("N";A8;1)+1;1);$E$13:$F$19;2;0)
F8 : =SVERWEIS(TEIL($A8;FINDEN("N";A8;1)+2;1);$G$13:$H$19;2;0)
G8 : =(B8&C8&D8&E8&F8)/100
B9 : =WENN(FINDEN("N";$A9;1)>3;SVERWEIS(TEIL($A9;LÄNGE($A9)-5;1);$C$13:$D$19;2;0);0)
C9 : =WENN(FINDEN("N";A9;1)>2;SVERWEIS(TEIL(A9;LÄNGE(A9)-4;1);C$13:D$19;2;0);0)
D9 : =WENN(FINDEN("N";$A9;1)>1;SVERWEIS(TEIL($A9;LÄNGE($A9)-3;1);$A$13:$B$19;2;0);0)
E9 : =SVERWEIS(TEIL($A9;FINDEN("N";A9;1)+1;1);$E$13:$F$19;2;0)
F9 : =SVERWEIS(TEIL($A9;FINDEN("N";A9;1)+2;1);$G$13:$H$19;2;0)
G9 : =(B9&C9&D9&E9&F9)/100
 
Günther
Anzeige
AW: Durch Buchstaben codierte Preisliste entschlüsseln
Panicman
Hallo Sebastian,
ab A1 stehen deine Codes
in B1 =(CODE(TEIL($A$1;SUCHEN("N";$A$1)-2;1))-78&CODE(TEIL($A$1;SUCHEN("N";$A$1)-1;1))-79&","&CODE(TEIL($A$1;SUCHEN("N";$A$1)+1;1))-81&CODE(TEIL($A$1;SUCHEN("N";$A$1)+2;1))-82)*1
und runterkopieren
Gruß
Holger
bitte erklaren, wenn's keine muehe macht
th.heinrich
hallo Holger,
das grenzt ja schon an Borisophie ;-))
das Du mit CODE sehe ich gerade noch aber weiter andere baustelle.
gruss thomas
AW: bitte erklaren, wenn's keine muehe macht
Panicman
Hallo Thomas,
ich fasse das als Kompliment auf. (Excellenz, Sir Boris)
Also die Verschlüsselung ist ziemlich einfach.
für die Stelle des Kommas ist er P=0 bis Y=9. für Jede Stelle vor dem Komma rückt er einen Buchstaben vor und für jede Stelle nach dem Komma einen Buchstaben weiter.
Mit Suchen() ermittle ich, an welcher stelle das Komma steht. In dem Beispiel ja immer an der dritten Stelle. Mit Teil extrahiere ich dann die einzelnen Stellen (z.B. (3)-2) ist die 2.Stelle vor dem Komma.
P hat den Code 80. Für jede stelle vor dem Komma ziehe ich 1 ab und für jede Stelle hinter dem Komma addiere ich 1.
Mit und Verketten und *1, dan hat mann einen Wert.
Gruß
Holger
Anzeige
thx Holger, muss es nur noch verdauen ;-)) ot.
th.heinrich
codierte Preisliste entschlüsseln per VBA
Panicman
Hallo Sebastian,
versuche mal diesen VBA-Code. Wenn der Hersteller die Logik beibehalten hat,
werden dir die Codes in Werte umgerechnet.
VBA einfügen in Modul
Option Explicit
Sub Umrechnen() Dim Komma As Integer Dim Lange As Integer Dim Stelle As Integer Dim I As Long Dim I1 As Integer Dim Text As String Dim Text1 As String For I = 1 To Range("A65536").End(xlUp).Row Text = "" Komma = InStr(1, Cells(I, 1), "N", vbTextCompare) Lange = Len(Trim(Cells(I, 1))) Stelle = -(Komma - 1) For I1 = 1 To Lange Stelle = Stelle + 1 If I1 = Komma Then Text = Text & "," Else Text1 = Asc(Mid(Cells(I, 1), I1, 1)) - (79 + Stelle) Text = Text & Text1 End If Next Cells(I, 2).Value = (Text) * 1 Next End Sub
Gruß
Holger
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige