Excel - удалить 4-е слово в каждом столбце

Excel - удалить 4-е слово в каждом столбце

Как удалить четвертое слово в каждом столбце таблицы 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».

  1. НаРазработчиквкладка, щелкнитеМакросы. (Если нетРазработчиквкладку, нажмите большой круглыйКнопка Microsoft Officeв левом верхнем углу окна нажмитеПараметры Excel, затем нажмитеПопулярный, а затем нажмите кнопкуПоказать вкладку «Разработчик» на лентефлажок).
  2. Появится диалоговое окно. ВИмя макроса:текстовое поле, назовите свой макрос; что-то вродеУдалитьЧетвертоеСловобудет работать.
  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.)

Связанный контент