Это, кажется, что вы хотите.
=IFERROR(VLOOKUP(LOWER(MID(A1,(SEARCH(" ",A1)+1),LEN(A1)))&LOWER(MID(A1,1,1))&"*",$B$1:$B$4,1,FALSE),VLOOKUP(LOWER(MID(A1,1,1))&LOWER(MID(A1,(SEARCH(" ",A1)+1),LEN(A1)))&"*",$B$1:$B$4,1,FALSE))
Его довольно сумасшедший долго и, вероятно, будет легче переваривать и отлаживать разбитые на столбцы вместо одной огромной формулы.
В основном это делает FLast и FirstL из поля имени, разбивая пространство.
LastF:
=LOWER(MID(A1,(SEARCH(" ",A1)+1),LEN(A1)))&LOWER(MID(A1,1,1))
И FirstL:
=LOWER(MID(A1,1,1))&LOWER(MID(A1,(SEARCH(" ",A1)+1),LEN(A1)))
Затем мы делаем 2 vlookups для них, используя специальные символы:
LastF:
=VLOOKUP([lastfirst equation from above]&"*",$B$1:$B$4,1,FALSE)
И FirstL:
=VLOOKUP([firstlast equation from above]&"*",$B$1:$B$4,1,FALSE)
А потом завернуть тех, кто в ЕСЛИОШИБКА так они оба получают пытались:
=IfError([firstLast vlookup],[lastfirst vlookup])
Загвоздка в том, что это будет ад для редактирования, если вы когда-нибудь понадобится, поэтому я предлагаю делать каждый кусок в другой колонке, затем ссылаясь на предыдущую. Вы также должны знать, что этот ответ будет сработал, по существу, с тем же именем - например. Сэм Смит и Саша Смит оба соответствовали бы тем, что было первым входом для ssmith. Любое решение здесь, вероятно, будет иметь одинаковую ошибку.
Отлично! он работал как волшебство! Ищете только последнее имя, так как большая часть идентификатора электронной почты содержит Фамилию. 1) Но если я хочу искать только первое имя, что мне нужно изменить в формуле ?, 2) Если я хочу вернуться, т. Е. Искать «wyatt» из почтового id '[email protected]' и выровнять ' Mascot Wyatt '& 3) Если я ищу имя First из идентификатора email и выровняю полное имя. Каковы будут эти три формулы, можете ли вы ответить? –
Это не сайт для написания кода/формулы. Я добавлю в свой ответ объяснение того, как это работает. Это должно помочь вам понять, как изменить его в соответствии с тем, что вы хотите сделать. –