letzten Buchstaben ermitteln

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: letzten Buchstaben ermitteln von: Erich M.
Geschrieben am: 27.03.2005 09:15:33

Hallo EXCEL-Freunde,

möchte aus einer Zelle den letzten Buchstaben rechts ermitteln.
Wie geht das, wenn die letzten Zeichen Zahlen sind:

Test1
 A
2Bezeichnung
3WV 123 Muster  Kaufen 462 T
4WV 234 Meuster und kaufen 467 K
5WV 2345 Muster  GmbH u Co. KG 465  K 345
6WV  1234 Muster und kaufen 463 L 356
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  



Mit diesem Code gehts, wenn keine Zahl rechts:
' aus Zelleninhalt letzten Buchstaben übertragen
Cells(2, 2) = "Merkmal"
For i = 3 To myZeile
Cells(i, 2) = Right(Cells(i, 1), 1)
Next

Jetzt müssten rechts die Zahlen "übersehen" werden bei den Zeilen 5 und 6.

Besten Dank für eine Hilfe!

mfg
Erich
http://www.toolex.de
Bild


Betrifft: AW: letzten Buchstaben ermitteln von: Hajo_Zi
Geschrieben am: 27.03.2005 09:24:45

Hallo Erich,

ich halte mich mal an die ersten zwei Zeilen und setze das mal um.

Option Explicit


Sub rechts()
    Dim InI As Integer
    Dim InJ As Integer
    For InI = 3 To 6
        For InJ = Len(Cells(InI, 1)) To 1 Step -1
            If IsNumeric(Mid(Cells(InI, 1), InJ, 1)) Then
                Cells(InI, 2) = Mid(Cells(InI, 1), InJ, 1)
                Exit For
            End If
        Next InJ
    Next InI
End Sub



Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.




Bild


Betrifft: AW: letzten Buchstaben ermitteln von: Erich M.
Geschrieben am: 27.03.2005 09:34:11

Hallo Hajo,

zunächst danke; aber jetzt wird die letzte Zahl ermittelt;
ich bräuchte den letzten Buchstaben rechts; leider konnte ich es nicht umstellen.

mfg
Erich
http://www.toolex.de


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: Hajo_Zi
Geschrieben am: 27.03.2005 09:37:38

Hallo Erich,

If Not IsNumeric(Mid(Cells(InI, 1), InJ, 1)) And _
Mid(Cells(InI, 1), InJ, 1) <> " " Then

Gruß Hajo

Das Forum lebt auch von den Rückmeldungen.


Bild


Betrifft: Danke Hajo - perfekt; das wars!! von: Erich M.
Geschrieben am: 27.03.2005 09:47:35



mfg
Erich
http://www.toolex.de


Bild


Betrifft: AW: Danke Hajo - perfekt; das wars!! von: Hajo_Zi
Geschrieben am: 27.03.2005 09:49:10

Hallo Erich,

die Variante von Andre ist aber die eindeutig bessere Methode.

Gruß Hajo

Das Forum lebt auch von den Rückmeldungen.


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: andre
Geschrieben am: 27.03.2005 09:38:03

Hallo Erich,
hier mal ein Beispiel zum Basteln:

Sub test4()
a = "K 123 k 423"
For i = Len(a) To 1 Step -1
 If Mid(a, i, 1) Like "[a-z,A-Z]" Then 
  MsgBox 1
  b=Mid(a, i, 1)
  Exit For
 End If
Next
End Sub



Bild


Betrifft: AW: letzten Buchstaben ermitteln von: Erich M.
Geschrieben am: 27.03.2005 09:51:34

Hallo andre,

danke; da fehlen mir leider noch die Kenntnisse. Mit Hajos Lösung komme ich bereits klar.
Deinen Vorschlag kann ich leider nicht anpassen; allerdings wäre es trotzdem interessant,
da ich immer wieder Auswertungen mit Zahlen- / Buchstabenkombinationen machen muss.

mfg
Erich
http://www.toolex.de


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: andre
Geschrieben am: 27.03.2005 10:06:03

Hallo Erich,
hier der code. Er läuft übrigens auch wesentlich schneller, Hajo's läuft 2-3s und dieser 1-2 bei 1000 Datensätzen und dem String abc 123 def 456 ijk 789 10 11 12, CPU Celeron 2600. Hilfe findest Du in Excel unter dem Begriff like.

Sub rechts2()
    Dim InI As Integer
    Dim InJ As Integer
    For InI = 1 To 100
        For InJ = Len(Cells(InI, 1)) To 1 Step -1
            If Mid(Cells(InI, 1), InJ, 1) Like "[a-z,A-Z]" Then
                Cells(InI, 3) = Mid(Cells(InI, 1), InJ, 1)
                Exit For
            End If
        Next InJ
    Next InI
End Sub

Grüße, Andre


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: andre
Geschrieben am: 27.03.2005 10:11:49

... die äußere Schleife muss natürlich so stehen:
For InI = 3 To 6
und nicht
For InI = 1 To 100
und bevor eine Frage kommt - in meinem Zeit - Test stand natürlich auch eine 1000 und nicht die 100 wie gepostet in dieser Schleife ;-)
schöne Ostern an alle, Gruß, Andre


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: Erich M.
Geschrieben am: 27.03.2005 16:03:54

Hallo andre,

besten Dank - auch für die weiteren Erklärungen.
Der Hinweis mit der Zeit wäre für mich aber noch insofern hilfreich, als ich bei der
Auswertung ca. 16.000 Datensätzen bearbeiten muss. Dabei werden verschiedene Daten auf ca.
20 Spalten verteilt (wie die obige).
Jetzt wäre interessant zu wissen, wie lange die jeweiligen Spalten-Auswertungen benötigen.
Kann man innerhalb eines codes mehrere Zeitmessungen vornehmen und irgendwo eintragen lassen?
(Ich meine das im Forum mal gesehen zu haben und versuche es zu finden).

Besten Dank nochmal!

mfg
Erich
http://www.toolex.de


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: Erich M.
Geschrieben am: 27.03.2005 16:33:46

hab was gefunden:
http://phorum.excelhost.de/read.php?11,62389,62455#msg-62455

mfg
Erich
http://www.toolex.de


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: andre
Geschrieben am: 28.03.2005 10:09:34

Hallo Erich,
die Lösung geht, ich nehme jedoch wegen der Kompatibilität zu älteren Versionen diese Form:

Sub rechts2()
    Dim InI As Integer
    Dim InJ As Integer
Cells(1, 5) = Format(Now, "hh:mm:ss") 'Startzeit
    For InI = 1 To 1000
        For InJ = Len(Cells(InI, 1)) To 1 Step -1
            If Mid(Cells(InI, 1), InJ, 1) Like "[a-z,A-Z]" Then
                Cells(InI, 3) = Mid(Cells(InI, 1), InJ, 1)
                Exit For
            End If
        Next InJ
    Next InI
Cells(2, 5) = Format(Now, "hh:mm:ss") 'Endzeit
End Sub

Den "Zeitstempel" musst Du unmittelbar vor und nach der Aktion setzen, bei Formeleinträgen ggf. auch die Berechnung aus- und wieder einschalten. Zur Überprüfung von Formelberechnungszeiten musst Du ggf. alle Einträge neu setzen, da Excel je nach Befehl nur Formeln mit Bezug auf geänderte Zellen neu berechnet.
Grüße, Andre


Bild


Betrifft: AW: letzten Buchstaben ermitteln von: Erich M.
Geschrieben am: 28.03.2005 10:14:14

Hallo Andre,

danke für den zusätzlichen Tipp!!

mfg
Erich
http://www.toolex.de


Bild


Betrifft: AW: letzten Buchstaben ermitteln - ohne VBA von: FP
Geschrieben am: 27.03.2005 12:06:25

Hallo andre,

Tabelle1
 AB
1WV 2345 Muster  GmbH u Co. KG 465  K 345K
2WV  1234 Muster und kaufen 463 L 356L
3WV 123 Muster  Kaufen 462 TT
Formeln der Tabelle
B1 : =WENN(ISTZAHL(RECHTS(A1)+0);TEIL(A1;SUCHEN("#";WECHSELN(A1;" ";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))))-1;1);RECHTS(A1))
B2 : =WENN(ISTZAHL(RECHTS(A2)+0);TEIL(A2;SUCHEN("#";WECHSELN(A2;" ";"#";LÄNGE(A2)-LÄNGE(WECHSELN(A2;" ";""))))-1;1);RECHTS(A2))
B3 : =WENN(ISTZAHL(RECHTS(A3)+0);TEIL(A3;SUCHEN("#";WECHSELN(A3;" ";"#";LÄNGE(A3)-LÄNGE(WECHSELN(A3;" ";""))))-1;1);RECHTS(A3))
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  


Servus aus dem Salzkammergut
Franz


Bild


Betrifft: AW: noch eine Variante ohne VBA von: FP
Geschrieben am: 27.03.2005 14:20:24

Hallo Erich,

diesmal als Arraformel

Tabelle1
 AB
1e ist 123 der letzt 4 Buchstabe123e
2Xist der letzte 123 XX
3Das 1 x 1 ist leichtt
4Das leichte 1 x 1x
Formeln der Tabelle
B1 : {=TEIL(A1;LÄNGE(A1)-MAX(ANZAHL(RECHTS(A1;SPALTE(1:1))+0));1)}
B2 : {=TEIL(A2;LÄNGE(A2)-MAX(ANZAHL(RECHTS(A2;SPALTE(2:2))+0));1)}
B3 : {=TEIL(A3;LÄNGE(A3)-MAX(ANZAHL(RECHTS(A3;SPALTE(3:3))+0));1)}
B4 : {=TEIL(A4;LÄNGE(A4)-MAX(ANZAHL(RECHTS(A4;SPALTE(4:4))+0));1)}

Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  


Servus aus dem Salzkammergut
Franz


Bild


Betrifft: AW: noch eine Variante ohne VBA von: andre
Geschrieben am: 27.03.2005 14:29:52

Hallo Franz,
wenn ich die Formel auf meinen Beispielstring
"abc 123 def 456 ijk 789 10 11 12"
anwende erhalte ich als Ergebnis 1 !?

hier erhalte ich als Ergebnis 9
"abc 123 def 456 ijk 789 1"

und hier das Leerzeichen
"abc 123 def 456 ijk 789 "

und erst hier das k
"abc 123 def 456 ijk 789"

- Anführungszeichen nicht in Zelle übernehmen -

Grüße, Andre


Bild


Betrifft: AW: auch kein Problem von: FP
Geschrieben am: 27.03.2005 14:43:48

Hallo Andre,

man muß nur vorher alle Leerzeichen in Nullen umwandeln :-)

Tabelle1
 AB
5abc 123 def 456 ijk 789 10 11 12k
6abc 123 def 456 ijk 789 k
7abc 123 def 456 ijk 789k
Formeln der Tabelle
B5 : {=TEIL(A5;LÄNGE(A5)-MAX(ANZAHL(RECHTS(WECHSELN(A5;" ";0);SPALTE(5:5))+0));1)}
B6 : {=TEIL(A6;LÄNGE(A6)-MAX(ANZAHL(RECHTS(WECHSELN(A6;" ";0);SPALTE(6:6))+0));1)}
B7 : {=TEIL(A7;LÄNGE(A7)-MAX(ANZAHL(RECHTS(WECHSELN(A7;" ";0);SPALTE(7:7))+0));1)}

Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  



Servus aus dem Salzkammergut
Franz


Bild


Betrifft: Danke für die Ergänzungen!! von: Erich M.
Geschrieben am: 27.03.2005 16:00:49



mfg
Erich
http://www.toolex.de


 Bild

Beiträge aus den Excel-Beispielen zum Thema "letzten Buchstaben ermitteln"