Как извлечь строковое значение на основе разделителей - PullRequest
0 голосов
/ 20 июня 2019

Мне нужна помощь с формулой Excel для извлечения значения из строки на основе разделителей.

Это строка, из которой я хотел бы извлечь первые 10 полей: ES_ABC_FACEBOOK_SocialImage_FACEBOOK_Reach(CPM)_DEM_18-45_Apr19_abc_def_ghi

Другими словами, мне нужно получить ES_ABC_FACEBOOK_SocialImage_FACEBOOK_Reach(CPM)_DEM_18-45_Apr19_abc

Принимая во внимание, что количество полей (разделенных разделителями) может варьироваться в наборе данных, но мне нужно последовательно подбирать только первые 10 полей и отбрасывать, сколько бы полей не следовало за 10-м полем.

Заранее спасибо!

Robin

1 Ответ

0 голосов
/ 20 июня 2019

Вы можете попробовать это:

=LEFT(<your cell>,FIND("||",SUBSTITUTE(<your cell>,"_","||",10))-1)

например. =LEFT(A1,FIND("||",SUBSTITUTE(A1,"_","||",10))-1)

Формула находит 10-е подчеркивание и дает вам все символы до него (минус подчеркивание).

Если вам нужно изменить количество полей, возвращаемых вам, измените 10. Значение -1 в конце просто удаляет последнее подчеркивание. Следует отметить, что || это просто набор символов, которые я не могу себе представить, появится в ваших строках. Если это произойдет, нужно будет выбрать что-то еще.

Наконец, если в некоторых ваших строках будет меньше 10 полей, попробуйте:

=IF(ISERROR(FIND("||",SUBSTITUTE(<your cell>,"_","||",10))-1),<your cell>,LEFT(<your cell>,FIND("||",SUBSTITUTE(<your cell>,"_","||",10))-1))

Это дает вам всю строку в случае, если есть менее 10 полей.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...