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(LOWER(RIGHT(A1,3))=" ne", LEFT(A1,LEN(A1)-2) & "NE", IF(LOWER(RIGHT(A1,3))=" se", LEFT(A1,LEN(A1)-2) & "SE", IF(LOWER(RIGHT(A1,3))=" nw", LEFT(A1,LEN(A1)-2) & "NW", IF(LOWER(RIGHT(A1,3))=" sw", LEFT(A1,LEN(A1)-2) & "SW", A1))))

Diese Formel überprüft die letzten drei Zeichen, um festzustellen, ob es sich um ein Leerzeichen handelt, gefolgt von ne, se, nw oder sw. Wenn dies der Fall ist, werden die letzten beiden Zeichen in Großbuchstaben geschrieben. Die Formel kann nur ein wenig gekürzt werden, wenn Sie anders vorgehen:

=IF(OR(LOWER(RIGHT(A1,3))=" ne", LOWER(RIGHT(A1,3))=" se", LOWER(RIGHT(A1,3))=" nw", LOWER(RIGHT(A1,3))=" sw"), 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 Adresse weitreichendere Kompassrichtungen hat (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 (9745) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: