
Как удалить четвертое слово в каждом столбце таблицы Excel? Например, у меня есть «Г-н и г-жа Смит». Я хочу сохранить г-на и г-жу, но удалить Смит. Разве нет способа найти и удалить четвертое слово? Большое спасибо за любую помощь...
решение1
Это своего рода обходной путь, но он сработает, если вы имеете дело с обычным текстом (не с формулами).
Допустим, ваш лист с данными называется «Лист1». Создайте новый рабочий лист в вашей электронной таблице (предположим, что он называется «Лист2») и в ячейке A1 введите:
=IFERROR(LEFT(Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1)-1),"")
Если вы хотите удалитьтолькочетвертое слово, введите:
=IFERROR(LEFT(Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1))&RIGHT(Sheet1!A1,LEN(Sheet1!A1)-FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1)+1)),IFERROR(LEFT(Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1,FIND(" ",Sheet1!A1)+1)+1)-1),""))
Скопируйте ячейку A1 и вставьте ее в ячейки на Листе 2, которые совпадают с ячейками на Листе 1 с данными, с которыми вы хотите работать. (Так что, если у вас есть данные на Листе 1 в ячейках с A1 по D5, вставьте их на Листе 2 в ячейки с A1 по D5.) Скопируйте все те ячейки, которые вы вставили, переключитесь на Лист 1 ивставить значенияв соответствующих местах. Теперь вы можете удалить Лист2.
решение2
Это может быть нестандартной идеей, но попробуйте сделать файл с разделителями-пробелами, а затем открыть его в Excel. Теперь удалите 4-й столбец.На бумаге это звучит хорошо...Больше я ничего не знаю.
решение3
Вот более элегантный/эффективный способ сделать это, если вы не против вставки макроса Visual Basic:
Допустим, ваш лист с данными называется «Лист1».
- НаРазработчиквкладка, щелкнитеМакросы. (Если нетРазработчиквкладку, нажмите большой круглыйКнопка Microsoft Officeв левом верхнем углу окна нажмитеПараметры Excel, затем нажмитеПопулярный, а затем нажмите кнопкуПоказать вкладку «Разработчик» на лентефлажок).
- Появится диалоговое окно. ВИмя макроса:текстовое поле, назовите свой макрос; что-то вродеУдалитьЧетвертоеСловобудет работать.
- Нажмите наСоздаватькнопка. (ЕслиСоздавать(Кнопка по-прежнему неактивна, уберите пробелы и знаки препинания из имени макроса.)
Вставьте следующее в появившееся окно между «Sub DeleteFourthWord()» и «End Sub»:
For Each c In ActiveCell.CurrentRegion.Cells If c.HasFormula = False Then Original_Cell_Text = c.Value Text_To_Parse = Original_Cell_Text Word1 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare)) If Len(Word1) = 0 Then Word1 = Text_To_Parse Text_To_Parse = "" Else Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word1)) End If Word2 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare)) If Len(Word2) = 0 Then Word2 = Text_To_Parse Text_To_Parse = "" Else Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word2)) End If Word3 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare)) If Len(Word3) = 0 Then Word3 = Text_To_Parse Text_To_Parse = "" Else Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word3)) End If Word4 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare)) If Len(Word4) = 0 Then Word4 = Text_To_Parse Text_To_Parse = "" Else Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word4)) End If Remaining_Text = Text_To_Parse If (Len(Word1) > 0 And Len(Word2) > 0 And Len(Word3) > 0 And Len(Word4) > 0) Then If Len(Remaining_Text) > 0 Then c.Value = Word1 + Word2 + Word3 + Remaining_Text Else c.Value = Word1 + Word2 + Word3 End If End If End If Next
ЗакройMicrosoft Visual Basicокно и нажмитеМакросынаРазработчиквкладка.
- Выберите макрос, который вы только что создали, и нажмите кнопкуПараметры...кнопка.
- ПодБыстрая клавиша, выберите сочетание клавиш для использования этой функции (в этом примере я буду использовать клавишу «t») и введите ее.
- НажмитеХОРОШОкнопку и затем закройтеМакродиалоговое окно.
- Выберите ячейки, из которых вы хотите удалить четвертое слово, и нажмите сочетание клавиш (например, Ctrl+t). Вы можете повторять этот шаг столько раз, сколько захотите.
Примечание:Если вы хотите удалить все после третьего слова, вставьте это:
For Each c In ActiveCell.CurrentRegion.Cells
If c.HasFormula = False Then
Original_Cell_Text = c.Value
Text_To_Parse = Original_Cell_Text
Word1 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
If Len(Word1) = 0 Then
Word1 = Text_To_Parse
Text_To_Parse = ""
Else
Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word1))
End If
Word2 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
If Len(Word2) = 0 Then
Word2 = Text_To_Parse
Text_To_Parse = ""
Else
Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word2))
End If
Word3 = Left(Text_To_Parse, InStr(1, Text_To_Parse, " ", vbTextCompare))
If Len(Word3) = 0 Then
Word3 = Text_To_Parse
Text_To_Parse = ""
Else
Text_To_Parse = Right(Text_To_Parse, Len(Text_To_Parse) - Len(Word3))
End If
Remaining_Text = Text_To_Parse
If (Len(Word1) > 0 And Len(Word2) > 0 And Len(Word3) > 0) Then
c.Value = Word1 + Word2 + Word3
End If
End If
Next
(Примечание источника: я изменил инструкции по получению вкладки «Разработчик» из файла справки Excel.)