Zum Beispiel, wenn meine ZeichenfolgeWie findet man das Zeichen nach dem zweiten Vokal in einer Zeichenfolge in EXCEL?
Die Happy Song
Der Ausgang
sein sollte, istp.
Wenn es ein leer ist, dann zeigt "Nothing"
Zum Beispiel, wenn meine ZeichenfolgeWie findet man das Zeichen nach dem zweiten Vokal in einer Zeichenfolge in EXCEL?
Die Happy Song
Der Ausgang
sein sollte, istp.
Wenn es ein leer ist, dann zeigt "Nothing"
VBA Antwort (mit Kommentaren) ist ;
Function AfterSecondVowel(InputRange As String)
'Put all the ascii codes for vowels (upper and lower case) in an array
asciicodesforvowels = Array(65, 97, 69, 101, 73, 105, 79, 111, 85, 117)
Dim Counter As Integer
Dim i As Integer
Counter = 0
'Loop through all the letters in the input string
For i = 1 To Len(InputRange)
'Check to see if trying to match the current letter (converted to an ascii code) you are on from the input range
'is in the array of ascii codes - If it isn't this will throw an error
If Not IsError(Application.Match(Asc(Mid(InputRange, i, 1)), asciicodesforvowels, False)) Then
'Increment your counter by 1
Counter = Counter + 1
End If
'Check to see if the counter has reached 2 yet - You can change the = 2 bit here to any number you want to return
'the letter after the N'th vowel
If Counter = 2 Then
'If it has reached the second vowel, skip to the next letter
i = i + 1
'Set the output of the function to this letter you've moved to
AfterSecondVowel = Mid(InputRange, i, 1)
'Exit the function
Exit Function
End If
'Otherwise loop through to the next letter
Next i
'If you reach the end of the letters without exiting the function it's because there weren't
'two vowels so exit the function returning the string value 'Nothing'
AfterSecondVowel = "Nothing"
End Function
Dadurch werden die Werte nach Ihren Vorgaben zurückzukehren, sollte nur, was Sie nicht angegeben haben, ist, wie es sich verhalten, wenn der zweite Vokal der letzte Buchstabe ist - die oben wird nur eine leere Zeichenfolge zurück.
Unten ist meine Antwort. Ich habe auch Logik hinzugefügt, um zu prüfen, ob es einen zweiten Vokal gibt, und wenn es nicht ist, wird eine Fehlermeldung ausgegeben. Siehe Screenshot für Details.
= IF (A1 <> "", IFERROR (MID (A1, FIND ("|", WECHSELN (WECHSELN (WECHSELN (WECHSELN (WECHSELN (LOWER (A1), "a", "|") ("e", "|"), "i", "|"), "o", "|"), "u", "|"), FIND ("|", SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (LOWER (A1), "a", "|"), "e", "|"), "i", "|"), "o", "|"), "u", "| ")) + 1) +1,1)," kein zweiter Vokal ")," ") mit Phrasen Ausgangszelle A1
Upvoted. in aktualisierten Fragen verwendet [hier] (http://stackoverflow.com/q/36978101/641067) – brettdj
Vorausgesetzt Sie haben ein Daten-Setup wie diese haben, gefunden und nach unten gehen Spalte A:
Wählen Sie Zelle B1 und mit dieser Zelle ausgewählt, erstellen Sie einen benannten Bereich. Ich nannte es LetterAfterVowel2
und es ist mit dieser Formel definiert:
=MID($A1,MIN(SEARCH({"a","e","i","o","u","y"},$A1&"aieouy",MIN(SEARCH({"a","e","i","o","u","y"},$A1&"aieouy"))+1))+1,1)
Nun, da wir das Chaos jedes Mal nicht eingeben müssen, ist es die fertige Formel macht viel sauberer. In Zelle B1 und abgeschrieben ist diese Formel:
Es wäre toll, wenn Sie ein Beispiel von dem, was Sie versucht haben, zu tun, auch wenn es völlig falsch ist, wie es Menschen hilft, die Frage zu beantworten und Ihr Verständnis zu erhöhen. – miltonb
Fragte hier http://Stackoverflow.com/q/36978101/641067 als eine vollständige Frage. – brettdj