Excel-셀 텍스트가 다음 (빈) 셀로 넘치지 않도록 방지


71

Excel 셀에 텍스트가 너무 길어서 해당 셀의 표시 영역에 표시 할 수없고 오른쪽의 다음 셀이 비어있는 경우 Excel에서 해당 텍스트를 다음 셀 (및 다음 셀 및 필요에 따라 다음). 나는 이것을 바꾸고 싶다; 이 텍스트 오버플로를 피하고 싶습니다.

"단어 줄 바꿈"을 활성화하고 행 높이를 조정하면이 문제를 피할 수 있습니다. 그러나 그것은 내가 원하는 것이 아닙니다.

Excel의 DEFAULT 동작을 변경하여 해당 셀의 표시 영역에만 각 셀의 값을 표시하려고합니다. 오버플로, 단어 줄 바꿈 없음.

이게 가능해? (저는 Excel 2010을 사용하고 있습니다.)


5
가능하지 않다고 판명되면 빈 셀에 공백 문자를 사용할 수 있습니다.
— Aprillion

꽤 흥미로운-WordWrap, Font-AutoSize 또는 다른 셀의 문자를 사용하는 것 외에 다른 방법을 모르겠습니다.
— Jook

1
모든 셀을 선택하고 Data / Text to Columns줄 바꿈 / 오버플로없이 셀에 맞을 수있는 문자 수만큼 줄 바꿈을 지정 하여 추가 문자를자를 수 있습니다 . 추가 문자를 보유한 추가 열 을 건너 뛰 십시오!
— Karan

나는 이것이 당신의 질문에 대답 할 것이라고 생각합니다 : superuser.com/a/878605/497156
— Sulaiman

""단어 줄 바꿈 "을 활성화하고 행 높이를 조정하면이를 피할 수 있습니다." 감사! 이것이 내가 선택한 솔루션입니다.
— Ochado

답변:


4

모든 사람에게 제공되는 옵션은 아니지만 문서를 Google 스프레드 시트로 가져 오는 경우이 기능이 기본적으로 지원됩니다. 상단 메뉴 모음에서 세 가지 유형의 텍스트 줄 바꿈이 지원됩니다. 오버 플로우, 랩 및 클립. 당신은 클립을 찾고 있습니다.

요구 사항에 따라 일부 사람들에게는이 옵션이 적합 할 수 있습니다.


5
그래서 당신의 대답은 실제로 Excel을 떨어 뜨리고 Google 시트와 함께한다고 말합니다.
— Solar Mike

내가 말했듯이, 모든 사람을위한 옵션은 아니지만 일부에게는 좋은 해결책 일 수 있습니다.
— yellavon

@SolarMike-감사합니다. 혼란 스러웠지만 귀하의 의견은이 답변을 정리합니다. & yellavon은 사람들이 자신의 답변을 듣지 않을 것이라고 생각하고 실제로 답변을 설명하기 전에 방어 적이라고 생각합니다. 귀하의 의견은 실제 게시 된 답변과 비교하여 더 간결합니다.
— barrypicker 2018 년

실제로 이것은 실제 솔루션에 가장 가까운 해답입니다. 나는 Excel에서 이와 비슷한 것을 할 수 있다고 생각했습니다. 열을 필요한 너비로 조정 한 다음 열에서 워드 워프를 활성화하면 (모든 행 높이가 증가 함) 마지막으로 모든 행을 선택하고 행 높이를 원하는 높이로 조정하십시오. 짜잔! 이제 셀에 인접한 셀로 넘치지 않는 텍스트가 있습니다 (@yellavon : 답변을 수락하겠습니다.이 EXcel 동작을 포함하도록 업데이트하여 사람들이 더 쉽게 솔루션에 액세스 할 수 있도록 할 수 있습니다)
— e-mre

49

예,이 동작을 변경할 수 있지만 이로 인한 부작용은 원하지 않을 것입니다.

인접한 셀에 데이터가 포함되어 있는지 여부에 관계없이 셀 내용을 셀 경계로 제한하는 열쇠는 텍스트 정렬 Fill입니다. 넘치지 않을 셀을 선택하고 마우스 오른쪽 버튼으로 클릭> 셀 서식 ... > 정렬 탭 > 가로 정렬 > 채우기

이 방법 의 문제점 은 셀에 여러 번 들어갈 수있을 정도로 짧을 때 내용을 반복하여 셀을 실제로 채울 수 있다는 것 입니다. 이것이 의미하는 바는 아래 스크린 샷을 참조하십시오. (즉,이 참고 B7된다 채워진 '짧은 텍스트'로.)

기본 및 채우기에 대한 다른 텍스트 정렬 동작을 보여주는 스크린 샷

Benedikt의 게시물 에서 해결 방법을 고수하는 것처럼 보입니다.

'베네딕트의 첫 번째 영리한 방법을 사용하여 틱 문자 ( )로 인접한 셀을 채울 수도 있습니다 . 이렇게하면 아무것도 숨길 필요가 없으며 셀 오버플로를 방지하고 셀을 텍스트로 복사하면 (메모장이라고 말하면) 공백이나 틱이 아닌 빈 텍스트가 표시됩니다.


2
그래서 베네딕트의 방법에 따라 '캐릭터를 비우는 방법을 제안했습니다 . 이제 나는 당신의 대답이나 그 또는 무엇을 찬성해야하는지 모르겠습니다! :-p
— Dan Henderson

더 혼란 스러워요. '오래된 편집을 포함하여 베네딕트의 대답에 사용할 제안이 전혀 없습니다 ! 나는 단지의 경우, 둘 다 upvoted했습니다 ...
— user56reinstatemonica8

1
@ user568458 : 내 노트는 실제로 Benedikt의 답변의 변형이었습니다. 베네딕트가 제안한대로 셀 을 채우는 ' 대신 셀 을 채울 수 있습니다 N/A. 방금 모든 빈 셀 을 임의의 값 으로 채우는 Benedikt의 방법을 매우 강력하게 발견했습니다.
— Marcus Mangelsdorf

1
'채우기'는 숫자도 왼쪽 정렬되도록합니다.
— posfan12

어떻게 ... 놀랍게 바보입니다. (Excel,이 답변이 아닙니다.)
— TJ Crowder

26

내가하는 방법은 다음과 같습니다.

  1. 옵션 1 : 빈 셀을 모두 "N / A"로 채운 다음 조건부 서식을 사용하여 텍스트를 보이지 않게하십시오.
  2. 또는 옵션 2 : 빈 셀을 모두 0으로 채우고 Excel 설정을 사용하여 0 값을 숨 깁니다.

모든 빈 셀 채우기 : (Mac에서 테스트)

  • 편집 → 이동 ... → 특수 ... (Windows : 홈 → 편집 → 찾기 및 선택 → 특수 이동 ...)
  • "공백"을 선택하고 확인을 누르십시오.
  • 빈 셀이 모두 선택되었습니다. 아무 것도 클릭하지 마십시오.
  • "N / A"또는 0을 입력 한 다음 Ctrl+ Enter† 를 누르십시오 . 선택한 모든 셀에 값이 삽입됩니다 .

"N / A"를 숨기기위한 조건부 서식

  • 형식 → 조건부 서식.
  • 새로운 규칙을 만듭니다.
  • 스타일 : 클래식 및 수식을 사용하여 서식을 지정할 셀을 결정합니다.
  • 공식: =A1="N/A"
  • 형식 : 사용자 정의 형식 : 글꼴 색 흰색, 채우기 없음.

제로 숨기기

  • 엑셀 → 설정 →보기.
  • "0 값 표시"를 선택 취소하십시오.

_______________
†   그건 Ctrl+ Enter, 하지 Ctrl+ Shift+Enter .


13

오버플로를 원하지 않는 인접한 셀에 수식 = ""(큰 따옴표 두 개)을 입력하십시오. 이것은 "null"로 평가되며 아무것도 표시하지 않으며 수학에는 영향을 미치지 않습니다.


1
Benedikt의 게시물과 결합하면 아무것도 숨길 필요가 없으므로 가장 쉬운 솔루션 중 하나라고 생각합니다.
— Matt

이것은 나를 위해 가장 잘 작동했습니다.
— Peter

통계 함수에 영향을주는 경우 COUNTA, 비어 있지 않은 범위의 셀 수 를 계산합니다 . 수식 결과로 길이가 0 인 문자열을 표시하는 셀은 비어 있지 않으며 계산됩니다.
— 심오한

4

셀에 가로 텍스트 맞춤 "채우기"를 사용하십시오. 문제를 해결해야하는 다른 정렬 옵션과 같은 위치에서 찾을 수 있습니다.

채우기 텍스트 정렬


4
Marcus Mangelsdorf의 답변에서 다루지 않았습니까 ?
— Stevoisiak

8
또한 Marcus는이 방법의 심각한 문제를 설명합니다. 셀의 내용이 짧으면 복제됩니다. 따라서 "A"는 "AAAAAAAA"가됩니다.
— Blackwood

감사합니다 셀을 마우스 오른쪽 버튼으로 클릭하고 다시 서식을 지정하고 "셀 서식"을 선택한 다음 나머지는 지침으로 수행하십시오. 효과가있었습니다.
— Catbuilts

4

인접한 빈 셀에 텍스트가 쏟아져 나오는 Excel 의 오른쪽 유출 '을 차단 하는 사용 솔루션을 확장 하면 때로는 해당 값을 삽입하여 데이터 열을 수정 / 손상하지 않으려는 경우가 있습니다.

'실제 데이터 값 에을 삽입하는 대신 '문자 전체로 완전히 채워진 새로운 전용 세로 열을 만들 수 있습니다 .

1. 배리어 칼럼

여기에 이미지 설명을 입력하십시오

2. 보호하려는 열의 왼쪽에 "배리어"열을 삽입하십시오.

여기에 이미지 설명을 입력하십시오

3. 열 너비를 작은 값으로 설정하여 장벽 열 축소

열 너비를와 같은 값으로 설정 .1하거나 여백 또는 열 간 공백으로 작동하도록 장벽 열을 더 넓게 유지하십시오.

여기에 이미지 설명을 입력하십시오

너비를 0보다 크게 설정해야합니다. 세로 배리어 열 너비를 0으로 설정하면 원하지 않는 셀 오버플로 동작으로 되돌아갑니다.

4. 짜잔!


1

Excel에서 열을 필요한 너비로 조정 한 다음 해당 열에서 워드 워프를 활성화하면 (모든 행 높이가 증가 함) 마지막으로 모든 행을 선택하고 행 높이를 원하는 높이로 조정합니다. 짜잔! 이제 인접 셀로 넘치지 않는 셀에 텍스트가 있습니다.

(참고 :이 답변을 찾아 선택한 답변에 댓글로 게시했지만 답변으로 게시하면 다른 사람들이 쉽게 찾을 수 있습니다.)


1
질문의 두 번째 단락 : ""단어 줄 바꿈 "을 활성화하고 행 높이를 조정하여이 문제를 피할 수 있다는 것을 알고 있습니다. 그러나 이것이 내가 원하는 것이 아닙니다."
— fixer1234

0

Google 스프레드 시트가 모든 사람을위한 것은 아니라는 생각과 마찬가지로이 매크로는 모든 사람을위한 것이 아니라 누군가를위한 것일 수도 있습니다 .

선택한 범위를 통과하고 넘친 셀을 잘린 텍스트로 바꿉니다.

플래그는 다음을 결정합니다.

  • 문제가되는 텍스트는 새 워크 시트에서 같은 상대 주소로 복사되거나 삭제됩니다.

  • 잘린 텍스트는 하드 코딩되거나 워크 시트 수식을 통해 연결됩니다 =LEFT()

  • 잘린 텍스트는 새 시트의 전체 문자열로 하이퍼 링크됩니다.

기본값은 데이터를 유지하고 두 링크를 모두 사용하는 것입니다.

Option Explicit

Sub LinkTruncatedCells()
    Dim rng As Range: Set rng = Selection
    Dim preserveValues As Boolean: preserveValues = True
    Dim linkAsFormula As Boolean: linkAsFormula = True
    Dim linkAsHyperlink As Boolean: linkAsHyperlink = True
    Dim w As Single
    Dim c As Range
    Dim r As Range
    Dim t As Long
    Dim l As Long
    Dim s As String
    Dim ws As Worksheet
    Dim ns As Worksheet
    Application.ScreenUpdating = False
    Set ws = rng.Parent
    For Each c In rng.Columns
        w = c.ColumnWidth
        t = 0
        l = 0
        For Each r In c.Rows
            If Len(r) > l Then
                s = r
                If CBool(l) Then r = Left(s, l)
                Do
                    r.Columns.AutoFit
                    If r.ColumnWidth > w And Len(s) > t Then
                        t = t + 1
                        r = Left(s, Len(s) - t)
                        l = Len(r)
                    End If
                Loop Until t = Len(s) Or r.ColumnWidth <= w
                r.ColumnWidth = w
                If r <> s And preserveValues Then
                    If ns Is Nothing Then
                        Set ns = ws.Parent.Worksheets.Add(after:=ws)
                    End If
                    ns.Range(r.Address) = s
                    If linkAsFormula Then r.Formula = "=LEFT(" & ns.Name & "!" & r.Address & "," & l & ")"
                    If linkAsHyperlink Then ws.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
                            ns.Range(r.Address).Address(external:=True)
                End If
            End If
        Next r
    Next c
    ws.Activate
    Application.ScreenUpdating = True
End Sub

마지막 참고 사항 : 개인 프로젝트에 사용했으며 신뢰할 수 있음을 알았지 만 익숙하지 않은 매크로를 시도하기 전에 작업을 저장하고 백업하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.