Как я могу удалить четвертое слово в каждом столбце таблицы Excel? Например, у меня есть «Мистер и миссис Смит». Я хочу оставить мистера и миссис, но удалите Смита. Разве нет способа найти и удалить 4-е слово? Большое спасибо за любую помощь...
3 ответа
Это может быть нестандартной идеей, но попробуйте превратить файл в файл с пробелами, а затем откройте его с помощью Excel. Теперь удалите 4-й столбец. Это звучит хорошо на бумаге ... Кроме этого, я не знаю.
Это своего рода обходной путь, но он будет работать, если вы просто работаете с обычным текстом (не с формулами).
Допустим, ваш лист с данными на нем называется "Лист1". Создайте новый лист в вашей электронной таблице (предположим, что он называется "Sheet2") и в 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 и вставьте ее в ячейки на Sheet2, которые совпадают с ячейками на Sheet1 с данными, с которыми вы хотите работать. (Таким образом, если у вас есть данные о Sheet1 в ячейках с A1 по D5, вставьте их на Sheet2 в ячейки с A1 по D5.) Скопируйте все те ячейки, которые вы вставили, переключитесь на Лист1 и вставьте значения в соответствующие места. Теперь вы можете удалить Sheet2.
Вот более элегантный / эффективный способ сделать это, если вы можете вставить макрос Visual Basic:
Допустим, ваш лист с данными на нем называется "Лист1".
- На вкладке Разработчик щелкните Макросы. (Если вкладка « Разработчик » отсутствует, щелкните большую круглую кнопку Microsoft Office в верхнем левом углу окна, выберите « Параметры Excel», затем « Популярные», а затем перейдите на вкладку « Показать разработчика» в окне "Лента" ).
- Откроется диалоговое окно. В текстовом поле Имя макроса : назовите свой макрос; что-то вроде DeleteFourthWord будет работать.
- Нажмите кнопку Создать. (Если кнопка « Создать» все еще отключена, уберите пробелы и знаки препинания из имени макроса.)
Вставьте следующее в открывшемся окне, в промежутке между «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.)