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

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

0
задан 03.11.2010, 21:24

3 ответа

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

Скажем, Ваш лист с данными по нему называют "Sheet1". Создайте новый рабочий лист на своей электронной таблице (давайте предположим, что это называют "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.) Копируют все те ячейки, которые Вы вставили, переключатель к Sheet1 и значения вставки в пятнах соответствия. Можно теперь удалить Sheet2.

2
ответ дан 24.11.2019, 03:38

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

2
ответ дан 24.11.2019, 03:38

Вот более изящный/эффективный способ сделать это, если необходимо хорошо вставить в макросе Visual Basic:

Скажем, Ваш лист с данными по нему называют "Sheet1".

  1. На вкладке Developer нажмите Macros. (Если нет никакой вкладки Developer, нажмите большое вокруг Кнопки Microsoft Office в верхнем левом из окна, нажмите Excel Options, то нажмите Popular и затем нажмите вкладку Show Developer во флажке Ribbon).
  2. Диалоговое окно откроется. На Макро-имя: текстовое поле, назовите свой макрос; что-то как DeleteFourthWord будет работать.
  3. Нажмите кнопку Create. (Если кнопка Create все еще отключена, выньте пробелы и пунктуацию с Вашего макро-имени.)
  4. Вставьте следующее в окне, которое подходит в пространстве между "Sub DeleteFourthWord ()" и "Концом 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 и нажмите Macros на вкладку Developer.

  6. Выберите макрос, который Вы просто создали, и нажмите Options... кнопка.
  7. Под Сочетанием клавиш выберите сочетание клавиш для использования для этой функции (я буду использовать ключ "t" в этом примере), и введите его там.
  8. Продвиньте кнопку OK и затем закройте диалоговое окно Macro.
  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

(Исходное Примечание: Я изменил инструкции относительно того, как получить вкладку Developer от Справочного файла Excel.)

0
ответ дан 24.11.2019, 03:38

Теги

Похожие вопросы