2016-04-28 3 views
1

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, ist

p.

Wenn es ein leer ist, dann zeigt "Nothing"

+0

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

+1

Fragte hier http://Stackoverflow.com/q/36978101/641067 als eine vollständige Frage. – brettdj

Antwort

0

Dieser Brief nach dem zweiten Vokal finden:

=IF(A1<>"",MID(A1,FIND("}}}",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A1),"a","}"),"e","}"),"i","}"),"o","}"),"u","}"),"y","}"),"}","}}}",2))+1,1),"") 

![enter image description here

0

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.

2

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

enter image description here

+0

Upvoted. in aktualisierten Fragen verwendet [hier] (http://stackoverflow.com/q/36978101/641067) – brettdj

0

Vorausgesetzt Sie haben ein Daten-Setup wie diese haben, gefunden und nach unten gehen Spalte A:

tigeravatar example for Deeksha Jha

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:

Verwandte Themen