Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Anzeige der Position im Alphabet mit Zahlen

Anzeige der Position im Alphabet mit Zahlen
24.08.2004 14:41:08
Heiko
Hallo Excel-Freunde!
Ich suche nach einer Lösung zu folgendem Problem.
In einer Zelle (A1) wird ein Wort eingegeben (z.B. Baum).
In der benachbarten Zelle oder in einer Msg-Box soll die Anzeige der Position im Alphabet der einzelnen Buchstaben mit Zahlen erfolgen.
In einer dritten Spalte oder in einer Msg-Box erscheint die Summe der emittelten Zahlen.
Beispiel:
Wort: Baum
Anzeige
B=2
A=1
U=21
M=13
Summe=37 (BAUM)
Kann mir hier jemand bitte helfen?
Bisher habe ich es hierher geschaft:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then Dim dummy As String For zahlencode = 1 To Len(Range("A1").Value) dummy = dummy & Str(Asc(Mid(UCase(Range("A1").Value), zahlencode, 1)) - 64) Next Range("A2").Value = Replace(dummy, "-32", "") End If End Sub
Danke Euch!!!
Anzeige
AW: Anzeige der Position im Alphabet mit Zahlen
Boris
Hi Heiko,
z.B. so:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim i As Integer, iCol As Integer, strTemp As String With Target If .Column <> 1 Then Exit Sub iCol = 2 strTemp = LCase(.Text) For i = 1 To Len(strTemp) Cells(.Row, iCol) = Asc(Mid(strTemp, i, 1)) - 96 iCol = iCol + 1 Next i Cells(.Row, iCol) = "Summe: " & Application.Sum(Range(Cells(.Row, 2), Cells(.Row, iCol - 1))) End With End Sub
Reagiert auf jede Eingabe in Spalte A.
Grüße Boris
Anzeige
AW: Anzeige der Position im Alphabet mit Zahlen
Heiko
Hallo Boris,
danke für Deine schnelle Reaktion.
Das sieht schonmal ganz gut aus. Leider ist die Variante mit dem Fortschreiben in den Nachbarzellen nicht geeignet.
Kannst Du das auch so umschreiben, daß die Ausgabe in einer Zelle oder in einer Msg-Box erfolgt?
Ich danke Dir.
AW: Anzeige der Position im Alphabet mit Zahlen
Boris
Hi Heiko,
alles in der Nachbarzelle:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Integer, s As String, intSum As Integer
With Target
If .Column <> 1 Then Exit Sub
For i = 1 To Len(.Text)
s = s & Asc(Mid(LCase(.Text), i, 1)) & ", "
intSum = intSum + Asc(Mid(LCase(.Text), i, 1))
Next i
Cells(.Row, 2) = s & "Summe: " & intSum
Columns(2).AutoFit
End With
End Sub

Grüße Boris
Anzeige
AW: Anzeige der Position im Alphabet mit Zahlen
Heiko
Boris, Du bist der Beste!
Danke!
PS: den kleinen Bug (-96) habe ich bemerkt
Uups - 96 fehlte
Boris
Hi Heiko,
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Integer, s As String, intSum As Integer
With Target
If .Column <> 1 Then Exit Sub
For i = 1 To Len(.Text)
s = s & Asc(Mid(LCase(.Text), i, 1)) - 96 & ", "
intSum = intSum + Asc(Mid(LCase(.Text), i, 1)) - 96
Next i
Cells(.Row, 2) = s & "Summe: " & intSum
Columns(2).AutoFit
End With
End Sub

Grüße Boris
Anzeige
bitte noch eine kleine Modifikation
Heiko
Hallo Boris,
der Code funktioniert einwandfrei.
Wie kann ich jedoch die Leerzeichen aus der Konvertierung und Zählung raus lassen?
Beispiel:
Baum = 4
Ba um = 4
Danke und ein schönes Wochenende
Ohne Leerzeichen
Boris
Hi Heiko,
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Integer, s As String, intSum As Integer, strTemp As String
With Target
If .Column <> 1 Then Exit Sub
strTemp = LCase(WorksheetFunction.Substitute(.Text, " ", ""))
For i = 1 To Len(strTemp)
s = s & Asc(Mid(strTemp, i, 1)) - 96 & ", "
intSum = intSum + Asc(Mid(strTemp, i, 1)) - 96
Next i
Cells(.Row, 2) = s & "Summe: " & intSum
Columns(2).AutoFit
End With
End Sub

Grüße Boris
Anzeige
Anzeige der Position im Alphabet Formellösung
Beate
Hallo Heiko,
es geht auch mit einer Formellösung, mit dem Nachteil, man müßte wissen, wieviele Buchstaben im String stehen, aber hier mal das Beispiel Baum/BAUM:
Tabelle1
 CD
21Baum37
22BAUM37
Formeln der Tabelle
D21 : =CODE(TEIL(GROSS(C21);1;1))-64+CODE(TEIL(GROSS(C21);2;1))-64+CODE(TEIL(GROSS(C21);3;1))-64+CODE(TEIL(GROSS(C21);4;1))-64
D22 : =CODE(TEIL(GROSS(C22);1;1))-64+CODE(TEIL(GROSS(C22);2;1))-64+CODE(TEIL(GROSS(C22);3;1))-64+CODE(TEIL(GROSS(C22);4;1))-64
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Da Kleinbuchstaben Codemäßig jeweils 64 über ihren grossen Pendents liegen, habe ich, um Fehler abzufangen, Großbuchstaben sichergestellt mit der Funktion GROSS und dann jeweils 64 abgezogen. Dann das Ganze ausgelesen mit der Funktion CODE, die reagiert aber nur auf das erste Stringzeichen, deshalb habe ich die Funktion TEIL noch mit reingepackt und so die Buchstaben der Reihe nach angesprochen.
Boris Lösung ist ja perfekt - aber ich wollte mal formelmäßig die Möglichkeiten austesten und deshalb hier das Ergebnis.
Gruß,
Beate
Anzeige
AW: Anzeige der Position im Alphabet Formellösung
Heiko
Dank Beate für Deine Mühe.
Da ist mir VBA-Lösung schon viel lieber.
Und das Ganze jetzt noch etwas verkürzt:
Boris
Hi Beate,
=SUMMENPRODUKT(CODE(KLEIN(TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1)))-96)
Dann ist die Stringlänge auch egal.
Grüße Boris
@ Boris - Kompliment!
Beate
An LÄNGE und INDIREKT hatte ich auch gedacht, aber die Kombi machts und SUMMENPRODUKT hatte ich noch nicht auf dem Plan. Sehr geschickt.
Gruß,
Beate
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Position im Alphabet mit Zahlen in Excel anzeigen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe.

  2. Gib in Zelle A1 ein beliebiges Wort ein (z.B. "Baum").

  3. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  4. Füge den folgenden Code in das entsprechende Arbeitsblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       Dim i As Integer, s As String, intSum As Integer, strTemp As String
       With Target
           If .Column <> 1 Then Exit Sub
           strTemp = LCase(WorksheetFunction.Substitute(.Text, " ", ""))
           For i = 1 To Len(strTemp)
               s = s & Asc(Mid(strTemp, i, 1)) - 96 & ", "
               intSum = intSum + Asc(Mid(strTemp, i, 1)) - 96
           Next i
           Cells(.Row, 2) = s & "Summe: " & intSum
           Columns(2).AutoFit
       End With
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Teste die Eingabe in Zelle A1, um die Buchstabenpositionen und die Summe automatisch in Zelle B1 anzuzeigen.


Häufige Fehler und Lösungen

  • Code wird nicht ausgeführt: Stelle sicher, dass du in Spalte A eine Eingabe machst, da der Code nur auf Änderungen in dieser Spalte reagiert.
  • Falsche Buchstabenpositionen: Überprüfe, ob die Eingabe in Zelle A1 korrekt ist und keine unerwünschten Leerzeichen enthält.
  • Summe wird nicht angezeigt: Achte darauf, dass der VBA-Code korrekt eingefügt wurde und keine Syntaxfehler enthält.

Alternative Methoden

Eine Formellösung ist ebenfalls möglich, allerdings ist es notwendig, die Anzahl der Buchstaben im Wort zu kennen. Hier ein Beispiel:

  • In Zelle B1 könntest du die folgende Formel verwenden:

    =SUMMENPRODUKT(CODE(KLEIN(TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1)))-96)

Diese Formel zählt die Positionen im Alphabet und summiert sie.


Praktische Beispiele

  • Wenn du das Wort "Baum" in Zelle A1 eingibst, wird in Zelle B1 ausgegeben: "2, 1, 21, 13, Summe: 37".
  • Bei der Eingabe von "Maus" erhältst du: "13, 1, 21, 19, Summe: 54".

Tipps für Profis

  • Automatisierung: Du kannst den VBA-Code erweitern, um die Eingabe in mehreren Zellen automatisch zu verarbeiten.
  • Benutzerdefinierte Funktionen: Erstelle benutzerdefinierte Excel-Funktionen für die Buchstabenposition im Alphabet, die du in jeder Zelle verwenden kannst.
  • Fehlervermeidung: Füge Validierungen hinzu, um sicherzustellen, dass nur alphabetische Zeichen verarbeitet werden.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, welcher Buchstabe "M" im Alphabet ist? Um zu bestimmen, welcher Buchstabe "M" ist, kannst du die Formel =CODE("M")-64 verwenden. Das Ergebnis ist 13, was bedeutet, dass "M" der 13. Buchstabe im Alphabet ist.

2. Gibt es eine Möglichkeit, die Anzahl der Buchstaben im Alphabet zu zählen? Ja, im deutschen Alphabet gibt es 26 Buchstaben. Du kannst die Funktion =ANZAHL(A1) verwenden, um die Buchstaben in einem spezifischen Text zu zählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige