Excel-모든 열에서 네 번째 단어 삭제 스미스 부인”이 있습니다. Mr.와

Excel 스프레드 시트의 모든 열에서 네 번째 단어를 어떻게 삭제합니까? 예를 들어 “미스터 스미스 부인”이 있습니다. Mr.와 Mrs.를 유지하고 싶지만 Smith는 삭제합니다. 네 번째 단어를 찾아서 삭제하는 방법이 없습니까? 도움을 주셔서 대단히 감사합니다 …



답변

이것은 일종의 해결 방법이지만 공식이 아닌 일반 텍스트를 처리하는 경우 작동합니다.

데이터가있는 시트를 “Sheet1″이라고합니다. 스프레드 시트에 새 워크 시트를 작성하고 ( “시트 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 셀을 복사하여 작업하려는 데이터와 함께 Sheet1의 셀과 일치하는 Sheet2의 셀에 붙여 넣습니다. 따라서 셀 A1-D5의 Sheet1에 데이터가있는 경우 셀 A1-D5의 Sheet2에 붙여 넣습니다. 붙여 넣은 모든 셀을 복사하고 Sheet1로 전환 한 다음 일치하는 지점에 붙여 넣습니다 . 이제 Sheet2를 삭제할 수 있습니다.


답변

이것은 벽에서 벗어난 아이디어 일 수 있지만 파일을 공백으로 구분 된 파일로 만든 다음 Excel로 열어보십시오. 이제 네 번째 열을 삭제하십시오. 이것은 종이에 잘 들립니다 … 이 외에는 모르겠습니다.


답변

Visual Basic 매크로에 붙여 넣어도 더 우아하고 효율적인 방법은 다음과 같습니다.

데이터가있는 시트를 “Sheet1″이라고합니다.

  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. 아래 바로 가기 키 ,이 기능을 사용 (I이 예에서 “t”키를 사용합니다) 거기를 입력 할 수있는 바로 가기 키를 선택하십시오.
  8. 푸시 OK 버튼을 누른 다음 닫습니다 매크로 대화 상자를.
  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 도움말 파일에서 개발자 탭을 얻는 방법에 대한 지침을 수정했습니다.)


답변