datasnapshot

У меня есть огромный набор данных, где один из столбцов находится в формате, как указано выше. Дело в том, что я хочу извлечь (вырезать) название города (например. VATICAN, как указано ниже) из столбца и скопируйте его в другой столбец справа от него, который будет пустым.

Однако проблема здесь в том, что для многих записей нет информации о городе. Так можно ли вырезать из столбца (если в первых нескольких символах столбца есть «-» или «:», вырезать его из этого столбца и вставить в ту же строку, но в соседний столбец)? Или есть другой способ сделать это?

Желаемый результат:

1 ответ1

1

Вы можете использовать комбинацию =LEFT() и =SEARCH() .

SEARCH дает вам положение символов в строке, а LEFT возвращает каждый символ слева от требуемой позиции.

Например, для содержимого ячейки в A1 = VATICAN - The Pope...
=SEARCH("-",A1) даст вам 6
=LEFT(A1,6) даст вам VATICAN -
и сочетание
=LEFT(A1,SEARCH("-",A1)) вернет VATICAN -

То же самое работает для любого другого персонажа как то есть ; или :

Обратите внимание, что функция LEFT() выдаст вам искомый символ. Вы можете добавить -1 после функции SEARCH() чтобы избежать этого.


Если персонаж не найден, вы получите ошибку, вот как вы ее преодолеваете:
=IFERROR(RETURN,RETURN_IF_ERROR)

Если вы хотите написать, например (неизвестно), вы должны использовать
=IFERROR(LEFT(A1,SEARCH("-",A1)-1),"unknown") но вы также можете оставить его пустым, только вставив "" .


конкатенация:

Вы можете объединить эту формулу несколько раз, чтобы получить разные символы. Имейте в виду, что Excel будет работать по формуле ltr.

Если вы хотите найти "-" и, если не найдено, ":" вы должны использовать:

=IFERROR(LEFT(A1,SEARCH("-",A1)-1),IFERROR(LEFT(A1,SEARCH(":",A1)-1),"unknown"))

РЕДАКТИРОВАТЬ:

Если вы хотите посмотреть только первые, скажем, 20 символов, просто замените SEARCH("-",A1) на SEARCH("-",LEFT(A1,20))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .