
Ich habe Zellenwerte mit Namen, die einander ziemlich ähnlich sind. Ich möchte eine gemeinsame Teilzeichenfolge extrahieren.
Hier ist ein Beispiel.
1100_250_Jump_12HR_100MD_S_run1
1100_250_Jump_12HR_100MD_S_run2
1100_250_Jump_12HR_100MD_S_run3
1100_250_Jump_12HR_100MD_S_run4
1101_250_Jump_12HR_100MD_U_run5
1101_250_Jump_12HR_100MD_U_run6
1102_250_Jump_12HR_100MD_U_run7
1102_250_Jump_12HR_100MD_U_run8
1102_250_Jump_12HR_100MD_U_run9
1102_250_Jump_12HR_100MD_U_run10
Die Ausgabe sollte sein_250_Jump_12HR_100MD_
Wie kann ich in Excel eine gemeinsame Teilzeichenfolge extrahieren?
Ich habe ähnliche Fragen geprüft, konnte die Antwort jedoch nicht finden.
Antwort1
Basierend auf der UDF im Link, den ich in den Kommentaren gepostet habe:
Option Explicit
Public Function CSTMatch3(Target1 As Range, Target2 As Range) As String
CSTMatch3 = ""
Dim myString As String, String1 As String, String2 As String, i As Long, j As Long, noChar As Long
noChar = 0
'The goal here is to assign the larger String to the variable String1
If Target1 = Target2 Then
CSTMatch3 = Target1
Exit Function
End If
If Len(Target1) >= Len(Target2) Then
String1 = Target1
String2 = Target2
Else
String1 = Target2
String2 = Target1
End If
For j = 1 To Len(String2)
For i = 1 To Len(String1) - j
If InStr(String2, Mid(String1, i, j)) Then
myString = Mid(String1, i, j)
noChar = noChar + 1
Exit For
End If
Next i
Next j
CSTMatch3 = myString
End Function
Verwenden Sie dann, vorausgesetzt, Ihre Zeichenfolgen befinden sich in der Spalte A
, die UDF B1
wie folgt:
=CSTMatch3(A1,A2)
Dann in B2
:
=CSTMatch3(A2,B1)
Und die Bevölkerungszahl verringern.
Zellen in Spalten B
einer beliebigen Zeile zeigen jetzt die gemeinsame Zeichenfolge für alle Zellen A
bis zu dieser Zeile an.