2017-02-20 23 views
1

У меня есть список мест в формате A2: [Городское государство], где в городе или штате может быть составлено более двух слов. Все это в одной ячейке. У меня есть данные в тысячах. Теперь у меня также есть список Состояние со мной. Мне нужно удалить State из A2 и просто оставить там оставшуюся строку. Таким образом, оставив меня только Город. Мне нужна помощь в этом, поскольку данные в миллионах, и у меня есть список около 30 тыс. Городов.Как определить определенный текст строки в ячейке и удалить ее в excel?

ответ

1

Вы можете создать 2 ячейки рядом с ячейкой, у которой есть данные для города и один для состояния. введите формулы и автозаполнение вниз.

Формулы для извлечения Города

=left(A1,find(" ",A1,1)-1) 

Формула для извлечения государству

=right(A1,len(A1)-find(" ",A1,1)) 

Этих формулы взять текст слева от первого места, и текст справа от первого места. У вас будет проблема, если в городе есть место, например. «Нью-Йорк», но с этим очень сложно обойтись.

Другой способ сделать это - пропустить все ячейки с помощью кода VBA и запустить тот же код в ячейке и удалить состояние из этой ячейки и поместить состояние в другую ячейку. это более сложный вариант.

Для решения крупных городов с 2 словами проблемой

Я предполагаю, что Насыщает являются штатами США и поэтому я создал строку из всех штатов США, которые содержат 2 слова

[ Нью-Джерси] [Нью-Мексико] [Нью-Йорк] [Северная Каролина] [Северная Дакота] [Род-Айленд] [Южная Каролина] [Южная Дакота] [Западная Вирджиния]

Если вы вставляете эти состояния в ячейку B1, то вы можете использовать приведенную ниже формулу в ячейке B3, чтобы проверить содержимое A3 и извлечь город.

=IF(ISNUMBER(FIND("[" & RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-1-LEN(SUBSTITUTE(A3," ",""))))) & "]",$B$1,1)),LEFT(A3,FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-1-LEN(SUBSTITUTE(A3," ",""))))-1),LEFT(A3,FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-LEN(SUBSTITUTE(A3," ",""))))-1)) 

Затем вставьте следующую формулу в ячейку C3, чтобы проверить содержимое A3 и извлечь состояние.

=IF(ISNUMBER(FIND("[" & RIGHT(F9,LEN(F9)-FIND("☃",SUBSTITUTE(F9," ","☃",LEN(F9)-1-LEN(SUBSTITUTE(F9," ",""))))) & "]",$B$1,1)),RIGHT(F9,LEN(F9)-FIND("☃",SUBSTITUTE(F9," ","☃",LEN(F9)-1-LEN(SUBSTITUTE(F9," ",""))))),RIGHT(F9,LEN(F9)-FIND("☃",SUBSTITUTE(F9," ","☃",LEN(F9)-LEN(SUBSTITUTE(F9," ","")))))) 

Формулы дела с государствами с 3 словами

Формула становится очень долго, но все, что он делает это проверка на матч с расколом на 3 пространствах с конца, а затем 2 места и если состояние не найдено, разбивается на 1 пробел.

Экстракт города

=IF(ISNUMBER(FIND("["&RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-2-LEN(SUBSTITUTE(A3," ","")))))&"]",$B$1,1)),LEFT(A3,FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-2-LEN(SUBSTITUTE(A3," ",""))))-1),IF(ISNUMBER(FIND("["&RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-1-LEN(SUBSTITUTE(A3," ","")))))&"]",$B$1,1)),LEFT(A3,FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-1-LEN(SUBSTITUTE(A3," ",""))))-1),LEFT(A3,FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-LEN(SUBSTITUTE(A3," ",""))))-1))) 

Extract Государственные

=IF(ISNUMBER(FIND("["&RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-2-LEN(SUBSTITUTE(A3," ","")))))&"]",$B$1,1)),RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-2-LEN(SUBSTITUTE(A3," ",""))))),IF(ISNUMBER(FIND("["&RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-1-LEN(SUBSTITUTE(A3," ","")))))&"]",$B$1,1)),RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-1-LEN(SUBSTITUTE(A3," ",""))))),RIGHT(A3,LEN(A3)-FIND("☃",SUBSTITUTE(A3," ","☃",LEN(A3)-LEN(SUBSTITUTE(A3," ",""))))))) 

Как это работает формула ищет предпоследний пространства, взяв один от последнего места (благодаря пользовательским m4573r для последней формулы пространства).Затем он берет все справа от последнего пространства, добавляет «[]» скобки и проверяет его на текст списка состояний в B1. Если он существует, то он использует второе последнее место в точке, чтобы вырезать текст пополам и возвращать либо Город слева, либо государство справа.

+0

Большое спасибо за ответ. Как вы сказали, я столкнулся с проблемой городов с пробелами между ними. И у меня их много. Мне было интересно, можно ли это сделать без использования VBA. Я новичок в Excel и до сих пор не знаком с множеством формул, не говоря уже о VBA. –

+0

Единственный способ учесть эти города - создать свой собственный список котят, у которых есть 2 слова, чтобы формула могла проверить их, или список действительных государств может быть проще. Это американские государства? – Gordon

+0

Нет, данные из Франции. Таким образом, названия городов похожи на «Ste Feyre La Montagne». –