Buchstaben nach Stellung im Alphabet nummerieren(EXCEL)?

4 Antworten

Du hast in Deinem Beispiel die 10 als 0 geschrieben. Ich nehme mal an, das ist Absicht.

Ich finde im Moment auf die Schnelle nur eine Lösung mit einigen Hilfszellen:

Bild zum Beitrag

Folgende Formeln:

B1 (und nach rechts kopieren): =CODE(TEIL($A$1;SPALTE(A1);1))+SPALTE()*0,01

B2 (und nach rechts kopieren): =WECHSELN(RANG.GLEICH(B1;$B$1:$K$1;1);10;0)

A2: =B2&C2&D2&E2&F2&G2&H2&I2&J2&K2

Falls das Ergebnis eine Zahl sein soll (so ist sie Text), dann:

A2: =(B2&C2&D2&E2&F2&G2&H2&I2&J2&K2)*1

Reicht Dir das so?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
 - (Microsoft Excel, Nummerierung)
lucasmitproblem 
Fragesteller
 08.01.2018, 17:46

wow ich hab es gerade mal ausprobiert und ich muss sagen es funktioniert einwandfrei!!! ;) jedoch habe ich noch eine frage... und zwar habe ich herausgefunden wie man die ganze Geschichte in den Zeilen nach unten verschieben kann. jedoch nicht wie ich es innerhalb einer Zeile nach rechts z.B. verschieben kann. Dies wäre nämlich noch nötig um den Schritt mehrfach mit unterschiedlichen Sätzen durchzuführen. An das VBA script werde ich mich dann herantasten.

Ps.:Ein riesiges DANKESCHÖN für diese hilfreichen Informationen :D

0
Oubyi, UserMod Light  09.01.2018, 13:32
@lucasmitproblem

Beschreibe mal genauer, wie Deine Tabelle aufgebaut ist, also wo Du die Einträge machst und wo die Zahlen stehen sollen. (Screenshot wäre nicht schlecht). Wenn das sowohl untereinander als auch nebeneinander ist, dann muss man die Hilfszellen speziell dafür anpassen, denke ich.

Hast Du mal den VBS/VBA-Code von @Suboptimierer ausprobiert? Weißt Du wie Du den implementieren musst? Der wäre eine gute Lösung, wenn Du Makros zulassen kannst.

0

Hier bietet sich wohl eine Verschachtelung von WECHSELN-Formeln, also =WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;"z";"26");"y";"25");"x";"24");"w";"23");"v";"22");"u";"21");"t";"20");"s";"19");"r";"18");"q";"17");"p";"16");"o";"15");"n";"14");"m";"13");"l";"12");"k";"11");"j";"10");"i";"9");"h";"8");"g";"7");"f";"6");"e";"5");"d";"4");"c";"3");"b";"2");"a";"1")

In der innersten WECHSEL-Formel kann dann A1 durch die gewünschte Eingabe ersetzt werden. Falls auch Großbuchstaben ersetzt werden sollen, müssten die gesamtem WECHSEL nochmal innen reingeschachtelt werden und die Kleinbuchstaben durch Großbuchstaben ersetzt werden.

---------------------

Habe gerade deine Kommentare gelesen.

Wenn jeder Buchstabe in einer Zelle steht, dann kann einfach

=SUCHEN(A1;"abcdefghijklmnopqrstuvwxyz")

Dann wird in der Zelle mit der Formel die Position des Buchstaben in der Eingabezelle (hier A1) gezeigt. Funktioniert mit Groß- und Kleinbuchstaben.

Das erhöhen der Zahlen bei mehrfachem Vorkommen wird mit reinem Excel nicht gehen, sondern nur mit einer zusätzliche Skriptsprache wie VBA.

lucasmitproblem 
Fragesteller
 07.01.2018, 14:59

Dies würde dann die Buchstaben durch den jeweiligen Stellenwert im Alphabet ersetzen oder? in dem fall nutze ich das beischpiel aus einem anderen kommentar : als wort diesmal nur 5stellig in der anwendung dann aber 10 stellig! -> bsp.:  hallo ... in dem Fall ist A der 1. Buchstabe also bekommt er eine 1 diese soll in die Zelle unter dem a. der nächste Buchstabe nach Alphabet wäre jetzt das H. dieses bekommt die Nummer 2 welche in die Zelle unter das H eingetragen wird. nun kommt das linke L mit der drei . dann das rechte L mit der 4 und zum Schluss das O mit der Nummer 5. ich hoffe das war halbwegs verständlich :D

0
lucasmitproblem 
Fragesteller
 07.01.2018, 15:04

ok danke :D wäre es denn sehr zeitintensiv/schwer solch ein Skriptelement einzubauen? :)

0

Ich finde, mit Excelformeln und Hilfszellen ist das wirklich so ein Hickhack. Da würde ich wirklich besser ein VBA-Script empfehlen.

Ansatz:

Function numerieren(sWort)
 Dim i 
 Dim j
 Dim sTemp
 Dim sWortSortiert : sWortSortiert = sWort
  
 numerieren = "" 
 if Len(sWort) > 10 then Exit Function
  
 ' Sortieren
 for i=1 to Len(sWortSortiert)
	for j=i to Len(sWortSortiert) 
		if Mid(sWortSortiert, j, 1) < Mid(sWortSortiert, i, 1) then
		 sTemp = Mid(sWortSortiert, i, 1)
		 poke sWortSortiert, Mid(sWortSortiert, j, 1), i
		 poke sWortSortiert, sTemp, j
		end if
	next
 next
  
 'Abgleich der Positionen
 for i=1 to Len(sWort)
	 for j=1 to Len(sWortSortiert)
		if Mid(sWort, i, 1) = Mid(sWortSortiert, j, 1) then
			if j < 10 then
				numerieren = numerieren & j
			else
				numerieren = numerieren & "0"
			end if
			poke sWortSortiert, " ", j
			'debug'LogInfo "i, j, sWortSortiert, numerieren: " & i & " " & j & " " & sWortSortiert & " " & numerieren
			j = Len(sWortSortiert)
		end if
	 next	
 next
End Function

' Tauscht Zeichen in einem Text an vorgegebener Position aus
Function poke(ByRef sText, ByVal sZeichen, ByVal iPosition)
	if iPosition > 0 and iPosition <= Len(sText) then _
		sText = Left(Left(sText, iPosition-1) & sZeichen & Mid(sText, iPosition+Len(sZeichen)), Len(sText))
	poke = sText		
End Function

(Der Code ist für VBS geschrieben und sollte sich problemlos auf VBA übertragen lassen.)

Oubyi, UserMod Light  08.01.2018, 15:01
DH!

Der Code lässt sich exakt SO auch in VBA ausführen. Habe es gerade ausprobiert.

Ich wollte erstmal auf eine Reaktion des FS warten, bevor ich mir so eine Arbeit mache, aber Du bist da wohl fleißiger als ich.🙂

1
Suboptimierer  08.01.2018, 15:16
@Oubyi, UserMod Light

Danke! Erste Sache, die mir gerade auffällt, die man optimieren könnte, ist die 10 in eine 0 umzuwandeln:

numerieren = numerieren & (j % 10)
0
lucasmitproblem 
Fragesteller
 13.01.2018, 12:57

Nachdem ich mich ein wenig in die visual basic Thematik eingearbeitet habe und dein script ausprobiert habe muss ich echt sagen es funktioniert wunderbar!!!... Außerdem hat es mich dazu angespornt mal etwas damit rumzuexperimentieren und es macht wirklich Spaß meiner Meinung nach. Also ein riesiges DANKESCHÖN auch an Dich ;)

1

leider ist die Formatierung nicht so gelaufen wie ich wollte... es soll unter jedem Buchstaben genau eine zahl stehen ^^