Abrufen der CHAR-Funktion, um mehrere Zeichen in Excel 2011 zurückzugeben

547
Rhiannon

Ich verwende Office 2011 auf einem Mac.

Ich versuche, eine Formel zu schreiben, um Kleinbuchstaben (und idealerweise Leerzeichen, aber das ist weniger wichtig) aus dem Text in einer Zelle zu entfernen. Der Zweck besteht darin, Namen in Initialen umzuwandeln. So würde "Jane" zu "J" werden, "DeLacy" würde zu "DL", "Mary-Anne" würde zu "MA" und "Anna Elise" zu "AE".

Bisher habe ich dies (vorausgesetzt der Name ist in B2), um Kleinbuchstaben zu entfernen:

=SUBSTITUTE(B2,CHAR(ROW(97:122)),"") 

Dies entfernt jedoch nur "a" (so wird "Jane" zu "Jne"). Das Problem scheint zu sein, dass die CHAR-Funktion nur das erste Zeichen und nicht den angegebenen Bereich zurückgibt:

=CHAR(ROW(97:122)) 

gibt "a" zurück.

Tut es auch

=CHAR(ROW(INDIRECT("97:122"))) 

Wie kann ich den gesamten Bereich zurückgeben, sodass alle Kleinbuchstaben entfernt werden?

1
Was Sie erreichen möchten, kann nicht mit einer Formel erreicht werden, da Sie für jeden Buchstaben des Alphabets iterieren müssen. Dazu benötigen Sie eine Funktion, es sei denn, Sie möchten 26 Ersatzfunktionen verschachteln. teylyn vor 9 Jahren 0

1 Antwort auf die Frage

0
Gary's Student

Betrachten mit einem kleinen U ser D efined F unktion (UDF) :

Public Function LowerKiller(sIn As String) As String Dim L As Long, LL As Long Dim sCh As String, temp As String For L = 1 To Len(sIn) sCh = Mid(sIn, L, 1) If sCh Like "[a-z]" Or sCh = " " Then Else temp = temp & sCh End If Next L LowerKiller = temp End Function 
Das hat perfekt funktioniert! Danke vielmals! (Ich habe nicht genug Vertreter, um diese Antwort zu bestätigen, sorry!) Rhiannon vor 9 Jahren 0