Ersetzen von Zeichen am Ende einer Zelle (Microsoft Excel)
Sam hat eine große Anzahl von Adressen in einem Arbeitsblatt. In diesen Adressen muss er sicherstellen, dass alle Kompassrichtungen (NE, SE, NW und SW)
sind alle in Großbuchstaben. Es wäre sehr hilfreich, wenn Sam herausfinden könnte, wie eine dieser Richtungen in Kleinbuchstaben (oder gemischten Groß- und Kleinschreibung) geändert werden kann, die nur am Ende einer Zelle mit ihren Gegenstücken in Großbuchstaben angezeigt werden. Er kann nicht einfach nach einem Leerzeichen suchen, gefolgt von „ne“, da dies Newton in NEwton ändern würde. Er fragt sich, wie er sicherstellen kann, dass die Ersetzung nur erfolgt, wenn die Buchstaben am Ende einer Zelle erscheinen.
Es gibt keine Möglichkeit, diese Aufgabe mit den Werkzeugen Suchen und Ersetzen in Excel auszuführen. Das bedeutet, dass Sie eine Formel oder ein Makro verwenden müssen, um die Aufgabe auszuführen. Mit Formeln können Sie sicherstellen, dass die letzten beiden Zeichen einer Zelle in Großbuchstaben geschrieben sind:
=LEFT(A1,LEN(A1)-2) & UPPER(RIGHT(A1,2))
Das Problem bei einer solchen Formel ist jedoch, dass sie nicht diskriminierend ist. Solange eine Zelle, in der sie verwendet wird, eine Kompassrichtung als die letzten beiden Zeichen hat, gibt es kein Problem. Wenn einige Zellen jedoch nicht die Kompassrichtung haben, treten sehr schnell Probleme auf. In diesem Fall muss die Formel die letzten Zeichen überprüfen:
=IF(RIGHT(A1,3)=" ne", LEFT(A1,LEN(A1)-2) & "NE", IF(RIGHT(A1,3)=" se", LEFT(A1,LEN(A1)-2) & "SE", IF(RIGHT(A1,3)=" nw", LEFT(A1,LEN(A1)-2) & "NW", IF(RIGHT(A1,3)=" sw", LEFT(A1,LEN(A1)-2) & "SW", A1))))
Diese Formel überprüft die letzten drei Zeichen, um festzustellen, ob ein Leerzeichen gefolgt von ne, se, nw oder sw vorhanden ist. Wenn dies der Fall ist, werden die letzten beiden Zeichen in Großbuchstaben geschrieben. Die Formel kann gekürzt werden, wenn Sie anders vorgehen:
=IF(OR(RIGHT(A1,3)=" ne", RIGHT(A1,3)=" se", RIGHT(A1,3)=" nw", RIGHT(A1,3)=" sw"), LEFT(A1,LEN(A1)-2) & UPPER(RIGHT(A1,2)), A1)
Sie können es noch weiter verkürzen, indem Sie eine Reihe von Kompassrichtungen in der Formel verwenden:
=IF(OR(RIGHT(A1,3)={" ne"," se"," sw"," nw"}), LEFT(A1,LEN(A1)-2) & UPPER(RIGHT(A1,2)), A1)
Wenn Sie keine Formel verwenden möchten, können Sie ganz einfach ein Makro erstellen, das die Überprüfung und Konvertierung für Sie übernimmt:
Sub CapDirections() For Each RCell In Selection CText = UCase(Right(RCell.Value, 3)) If CText = " NE" Or CText = " SE" _ Or CText = " SW" Or CText = " NW" Then RCell.Value = Left(RCell.Value, _ Len(RCell.Value) - 3) + CText End If Next End Sub
Um das Makro zu verwenden, wählen Sie einfach die Zellen mit den Adressen aus und führen Sie es aus. Es wird überprüft, ob sich einer der vier Kompasspunkte am Ende des Zellenwerts befindet. Wenn dies der Fall ist, wird sichergestellt, dass die Kompassrichtung in Großbuchstaben angegeben ist.
Sie sollten beachten, dass diese Lösungen darauf basieren, dass Ihre Adressen nur vier mögliche Kompassrichtungen enthalten. Wenn Ihre Adressen weitreichendere Kompassrichtungen haben (wie N oder SSE), sollten Sie auf jeden Fall eine makrobasierte Lösung verwenden, da die Überprüfung für eine Formel schnell sehr komplex wird.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (9746) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: