Wie kann ich aus einer Liste in Excel mit leads alle Nutzernamen (haben alle ein @) herausfiltern?
Hallo zusammen
Ich habe eine grosse Liste mit Leads und die ist nicht gut geordnet. Ich möchte jetzt gerne alle Nutzernamen heraussortieren (haben alle ein @). Ich möchte also neben den ganzen Zeilen eine haben die nur den @Nutzernamen angibt. wie kann ich das in Excel machen?
Brauche dringend Hilfe.
Bin froh um jede Antwort.
Liebe Grüsse
Fabian
1 Antwort
Ich habe mir dazu vor ewiger Zeit zwei Funktionen (angelehnt an LISP) geschrieben: CAR() und CDR(). Damit wird das ein einfacher Aufruf. Angenommen der Text stünde in A1, dann wäre das
=cdr(car(a1; "@");zeichen(34))
Die Funktion zeichen(34) ergibt die Anführungszeichen. In der Konstantenschreibweise wären das vier Anführungszeichen, was es unübersichtlich macht.
PS: wenn das @-Zeichen gebraucht wird einfach vorne wieder dranpappen
="@" & cdr(car(a1; "@");zeichen(34))
Dann die Formel nach unten ziehen
Die Funktionsmakros in Excel anlegen:
Entwicklertools - Makros - bei Makroname irgendwas eingeben - erstellen.
Den Code unten reinkopieren (evtl. vorhandenes Sub-End Sub löschen) und als XLSM (XL mit Makro) speichern.
' --- Allerweltsfunktionen ---
Function car(sString As String, sDelim As String) As String
Dim i As Integer
i = InStr(1, sString, sDelim, vbTextCompare)
If i = 0 Then
car = ""
Else
car = Trim(Left(sString, max(0, i - 1)))
End If
End Function
Function cdr(sString As String, sDelim As String) As String
Dim i As Integer
i = InStr(1, sString, sDelim, vbTextCompare)
If i = 0 Then
cdr = ""
Else
cdr = Trim(Mid(sString, max(0, i + Len(sDelim))))
End If
End Function
Function max(a As Variant, b As Variant) As Variant
If a > b Then max = a Else max = b
End Function
Function Min(a As Variant, b As Variant) As Variant
If a < b Then Min = a Else Min = b
End Function
Function LastCar(sString As String, sDelim As String)
Dim i As Integer
LastCar = ""
For i = Len(sString) - Len(sDelim) To 1 Step -1
If Mid(sString, i, Len(sDelim)) = sDelim Then
LastCar = Mid(sString, i + 1)
Exit For
End If
Next
End Function
PPS:
Zur Erklärung (in Lisp) holt der CAR das erste Element einer Liste raus. Der CDR alles ohne das erste Element. Da wir in Excel keine Listen haben habe ich das so abgewandelt, dass man das Trennzeichen mit angeben muss. Was dann die Funktion recht universell einsetzbar macht.
Nachtrag: in Lisp spricht man von dotted list oder dotted pair. Listen ist der falsche Begriff.