Как убрать третье имя ячейки с 4 именами - PullRequest
1 голос
/ 29 апреля 2020

У меня есть набор данных имен людей с 4 словами [firstName secondName 3rdName FamilyName] Мне нужно удалить третье имя клетки. Пожалуйста, помогите ..

Пример: reem fahad ali almuhana
Ожидаемый результат: reem fahad almuhana

Я пытался
=TRIM(MID(SUBSTITUTE(F2," ",REPT(" ",LEN(F2))), (3-1)*LEN(F2)+1, LEN(F2)))

Ответы [ 3 ]

3 голосов
/ 29 апреля 2020

Вы можете попробовать следующий подход:

=LEFT(TRIM(A1),FIND(" ",TRIM(A1),FIND(" ",TRIM(A1),1)+1))&TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),99))

Вы можете разрешить go для некоторых из TRIM частей, как показано ниже, если ваши данные согласованы с точки зрения разделения пробелов .

=LEFT(A1,FIND(" ",A1,FIND(" ",A1,1)+1))&TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",99)),99))

3 голосов
/ 29 апреля 2020

Надлежащим способом решения этой проблемы был бы answer @ 1002 * @ shrivallabha.redij, но для развлечения и ради альтернативных средств; попробуйте комбинацию FILTERXML, TEXTJOIN и некоторых XPATH волхвов c =)


Вариант 1): Ваш оригинальный вопрос; удалите трижды имя в ячейке с 4 именами:

=TEXTJOIN(" ",1,FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[position()!=3]"))

enter image description here


Вариант 2): Те же правила как указано выше, но проверьте, существует ли сначала 4 имени:

Хотя первая опция также удалит «ali» из «reem fahad ali», мы можем применить несколько классных OR logi c. Поскольку Excel использует XPATH 1.0, мы должны применить | к mimi c выражению. Подробнее об этом здесь :

=TEXTJOIN(" ",1,FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[count(//s)<4]|//s[position()!=3]"))

Теперь мы проверим, есть ли на самом деле 4 имени в ячейке. Если меньше, то ничего не происходит, в противном случае имя ячейки в ячейке будет удалено.

enter image description here


Вариант 3: Те же правила, что и выше, но удалите диапазон имен:

Если второй вариант удалит третье имя из ячейки, вам может быть интересно удалить 3-ю до второй-последней ячейки. Это означает, что мы можем применить это к именам больше 4 и избежать использования первых двух и последних составных:

=TEXTJOIN(" ",1,FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[count(//s)<4]|//s[position()<3 or position()=last()]"))

enter image description here


Примечание 1: Введите все вышеуказанные параметры с помощью Ctrl Сдвиг Введите

Примечание 2: Ни в коем случае я XPATH гуру. Так что, возможно, другие (лучшие) выражения там.

Удачи!

0 голосов
/ 29 апреля 2020
  1. использовать notepad ++ создать новый текстовый файл
  2. скопировать все это в файл
  3. заменить пробел между словами на '\ t'
  4. , а затем скопировать все из слов назад, чтобы преуспеть, тогда слова входят в различные ячейки
  5. удалить третий столбец
  6. у вас нет третьего имени сейчас
  7. сделать это снова скопировать все это обратно в текстовый файл
  8. заменить '\ t' на пробел
  9. скопировать все это обратно в excel
  10. все слова имени входят в одну клетку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...