Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


Suche Excel Funktion

Alles über Betriebssysteme, Anwenderprogramme und andere Software-Probleme.

Suche Excel Funktion

Beitragvon moardin am 16.12.2005, 15:51

Hallo.

Ich benötige Hilfe bei einem Excel-Problem. Da dieses Thema sehr kompliziert zu Beschreiben ist, werde ich einzelne Schritte angeben.
Sollte etwas unklar sein, bitte nachfragen. Ivh werde dann spezifisch genauer darauf eingehen.

1. In Einer Excel-Tabelle mit einer Spalte steht ein Buchstabencode beispielsweise in dieser form:
a|b|c|d

2. Jeder dieser Buchstaben steht für ein oder mehrere Worte

3. Aufgabe ist es nun, diese Buchstaben möglichst schnell und effizient durch die dazugehörigen Worte zu ersetzen.

bisher habe ich das problem so gelöst:

- Jede vorkommende Möglichkeit (a|b|c; a|c usw)wurde in einer seperaten Excel-Datei genau einmal eingefügt.
- In die Spalte daneben wurden in richtiger Reihnfolge die jeweils passenden Bedeutungen geschrieben (Apfel|Banane usw).
- Dann wurde der befehl =VLOOKUP() verwendet. (zu deutsch: =sverweis() ) um die Buchstaben in der orginal File zu ersetzen.

Sie können sich vorstellen, dass dieses Verfahren je nach Größe der Datei einige Stunden benötigen kann.

Bitte helfen Sie mir eine bessere Lösung zu finden.

Danke im Vorraus

moardin
moardin
 
Beiträge: 37
Registriert: 14.06.2005, 11:04


Beitragvon Porsche Fan am 16.12.2005, 16:00

Hallo moardin,
man könnte das ganze in VBA lösen. Die 'entschlüsselten' Werte in ein Array einlesen und dann mit den codierten Zellen vergleichen. Über das Tempo kann ich leider nichts sagen. Hängt auch da davon ab wieviele Werte vorhanden sind.

Alternativ dazu würde ich dir Access empfehlen. Die codierten Werte in eine Tabelle, die entschlüsselten Werte in eine 2. Tabelle und diese dann miteinander verknüpfen.
Porsche Fan
 
Beiträge: 160
Registriert: 02.08.2005, 00:52

Kodierung

Beitragvon schwedenmann am 16.12.2005, 16:01

Hallo


geh ich rcht in der Annahme, daß die Buchstaben in der Tabelle (der kodierte Text) durch einfaches ersetzen von Buchstabe X durch Buchstabe Y erzeugt wurde.
Also z.B. aus e wird g; aus f wird H unsw. ?

Wenn dem so ist googel mal
Viniere-Chiffre
Ausserdem solltest du dir eine tabelle besorgen in der die prozentuale Verteileung der Buchstaben im dt. Alphabet aufgelistet ist.

damit kann man wahrscheinlich per hand den Text eher entschlüseln als per Excel-Befehl.

Außerdem gibt es für die Vinierechiffre eine Formel zur Dekodierung, wurde im 19.Jh entdeckt.

mfg
schwedenmann
schwedenmann
Moderator
 
Beiträge: 6789
Registriert: 29.12.2003, 16:14
Wohnort: 41844 Wegberg

Beitragvon moardin am 16.12.2005, 16:36

@schwedenman:

Das stimmt leider nicht (die Buchstaben wurden bereits außerhalb von Excel Erzeugt und Importiert)

@Porsche Fan:

das ist zwar die Möglichkeit, die ich momentan auch ins Auge fasse, aber ich muß gestehen, dass meine Kenntnisse über die bloße Existenz von Macros nicht hinaus gehen.
Es wäre nett, wenn ich dabei Hilfe erhalten könnte.

so weit mein Versuch:

Dim a, b, c, d, e As String
a = "Banane"

Sub S4_Q3()
For Each Row In Worksheets("Sheet1")
ActiveCell
Next

End Sub

Ich müßte sicherlich meine Werte in arrays speichern und eine verschachtelte for-Schleife erzeugen die zuerst die Spalte durchläuft und dann die werte ersetzt.
Das ganze sollte dann später so aussehen, dass ich dieses Macro als Template für spätere Umwandlungen benutzen kann.

Vielen dank soweit aber ich bräuchte Hilfe beim Scripten.

Moardin
moardin
 
Beiträge: 37
Registriert: 14.06.2005, 11:04

Beitragvon Porsche Fan am 16.12.2005, 18:32

Hallo moardin,
hier ein erster Entwurf.

Voraussetzungen:
Ich gehe mal davon aus das die Buchstaben auf Tabelle1 alles Kleinbuchstaben sind.

Tabellenblatt "Tabelle1" 1. Spalte
a|b|c
a|d|f
f|a|f

Tabellenblatt "Tabelle2" 1. und 2. Spalte
a Apfel
b Birne
c Clementine
d Dattel
e xxx
f Feige
g yyy
h zzz
i www
j vvv



Code: Alles auswählen
Sub decode()
Dim strDecode(10) As String
Dim strCode As String
Dim strResult As String
Dim n As Integer
Dim nC As Integer
Dim nHelp As Integer

'Werte in Array einlesen
  Sheets("Tabelle2").Select

  strDecode(0) = ""
  n = 1
  While Cells(n, 1).Value <> ""
    strDecode(n) = Cells(n, 2).Value
    n = n + 1
  Wend

'codierte Werte ermitteln, decodieren und schreiben
  nC = 1
  Sheets("Tabelle1").Select
 
  While Cells(nC, 1).Value <> ""
    strResult = ""
    strCode = Cells(nC, 1).Value
    For nHelp = 1 To Len(strCode)
      If Mid(strCode, nHelp, 1) = "|" Then
        strResult = strResult & " "
      Else
        strResult = strResult & strDecode(Asc(Mid(strCode, nHelp, 1)) - 96)
      End If
    Next
    Cells(nC, 2).Value = strResult
    nC = nC + 1
  Wend
End Sub


Das Ergebnis wird in Tabelle1 2. Spalte geschrieben.

Falls die Voraussetzungen doch etwas anders sind melde dich noch mal, oder schick mir mal ne Beispieldatei zu.
Porsche Fan
 
Beiträge: 160
Registriert: 02.08.2005, 00:52

Beitragvon moardin am 16.12.2005, 18:44

das sieht wirklich um Längen besser aus als meine bisherige Kreation!

ich kann es leider erst am Montag ausprobieren, da ich übers Wochenende nicht im Land bin...

Aber grundsätzlich erstmal vielen Dank!

und wenn es wirklich funktioniert ist mir das 20€ wert!

Vielen Vielen Dank für die Mühe!
very best Regards

moardin

p.s.: Weiteres am Montag... Schönes Wochenende!
moardin
 
Beiträge: 37
Registriert: 14.06.2005, 11:04



Ähnliche Themen


Zurück zu Software-Hilfe

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste