Suchen von Positionen formatierter Zeichen in einer Zelle (Microsoft Excel)
Gary hat ein Arbeitsblatt mit unstrukturierten Textzeichenfolgen, die er in Komponentenelemente analysieren muss. Manchmal muss er nach Textarten suchen und nicht nach einem bestimmten Zeichen. Beispielsweise möchte er möglicherweise das erste, das N-te oder das letzte Vorkommen eines fetten Zeichens (oder eines kursiven Zeichens) in der Zelle finden.
In Excel gibt es keine intrinsische Funktion oder ein Tool, um diese Aufgabe auszuführen.
Die reguläre Funktion „Suchen und Ersetzen“ gibt Übereinstimmungen für die Formatierung zurück, jedoch nicht die Position, an der diese Übereinstimmungen auftreten. Um genau zu wissen, was Sie suchen möchten, müssen Sie ein Makro verwenden. Sie können die Positionierungsinformationen wieder in Ihr Arbeitsblatt aufnehmen, wenn Sie das Makro als benutzerdefinierte Funktion implementieren.
Das folgende Makro akzeptiert einen Bereich (der eine bestimmte Zelle sein soll), einen Indikator dafür, ob Sie fett oder kursiv (oder beides) möchten, und das Auftreten dieser Formatierung.
Function FindNth(r As Range, sType As String, N As Integer) As Integer Dim J As Integer Dim iCount As Integer Dim sStyle As String If r.Count = 1 Then FindNth = 0 iCount = 0 For J = 1 To Len(r.Text) sStyle = r.Characters(J, 1).Font.FontStyle If LCase(sStyle) = LCase(sType) Then iCount = iCount + 1 If N = 0 Then FindNth = J Else If N = iCount Then FindNth = J Exit For End If End If End If Next J Else FindNth = -1 End If End Function
Um das Makro zu verwenden, verwenden Sie eine der folgenden Formeln in Ihrem Arbeitsblatt:
=FindNth(A1, "bold", 2) =FindNth(A1, "italic", 3) =FindNth(A1, "bold italic", 1)
In jedem Fall gibt der dritte Parameter an, welches Vorkommen der angegebenen Formatierung Sie suchen möchten. Die Funktion gibt die Zeichenposition dieses Vorkommens innerhalb der Zelle zurück. Wenn dies nicht der Fall ist, wird 0 zurückgegeben. Wenn Sie im ersten Parameter der Funktion mehrere Zellen angeben, wird -1 zurückgegeben. Wenn Sie ein Vorkommen von 0 angeben, wird die Zeichenposition des letzten Vorkommens des angegebenen Formats zurückgegeben.
_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 (13402) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.