Как я могу удалить четвертое слово в каждом столбце таблицы Excel? Например, у меня есть «Мистер и миссис Смит». Я хочу оставить мистера и миссис, но удалите Смита. Разве нет способа найти и удалить 4-е слово? Большое спасибо за любую помощь...

3 ответа3

2

Это может быть нестандартной идеей, но попробуйте превратить файл в файл с пробелами, а затем откройте его с помощью Excel. Теперь удалите 4-й столбец. Это звучит хорошо на бумаге ... Кроме этого, я не знаю.

2

Это своего рода обходной путь, но он будет работать, если вы просто работаете с обычным текстом (не с формулами).

Допустим, ваш лист с данными на нем называется "Лист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.

0

Вот более элегантный / эффективный способ сделать это, если вы можете вставить макрос Visual Basic:

Допустим, ваш лист с данными на нем называется "Лист1".

  1. На вкладке Разработчик щелкните Макросы. (Если вкладка « Разработчик » отсутствует, щелкните большую круглую кнопку Microsoft Office в верхнем левом углу окна, выберите « Параметры Excel», затем « Популярные», а затем перейдите на вкладку « Показать разработчика» в окне "Лента" ).
  2. Откроется диалоговое окно. В текстовом поле Имя макроса : назовите свой макрос; что-то вроде DeleteFourthWord будет работать.
  3. Нажмите кнопку Создать. (Если кнопка « Создать» все еще отключена, уберите пробелы и знаки препинания из имени макроса.)
  4. Вставьте следующее в открывшемся окне, в промежутке между «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
    
  5. Закройте окно Microsoft Visual Basic и щелкните Макросы на вкладке Разработчик.

  6. Выберите только что созданный макрос и нажмите кнопку « Параметры ...».
  7. В разделе « Сочетание клавиш» выберите сочетание клавиш для этой функции (в этом примере я буду использовать клавишу "t") и введите его там.
  8. Нажмите кнопку ОК и закройте диалоговое окно « Макрос ».
  9. Выберите ячейки, из которых вы хотите удалить четвертое слово, и нажмите клавишу быстрого доступа (например, 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.)

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