Excel - Zapobieganie przepełnieniu tekstu komórki do następnej (pustej) komórki


72

Jeśli tekst w komórce programu Excel jest zbyt długi, aby można go było wyświetlić w widocznym obszarze tej komórki, a następna komórka po prawej stronie jest pusta, program Excel pozwala wyświetlać tekst w tej następnej komórce (i następnej oraz następnie, w razie potrzeby). Chcę to zmienić; Chcę uniknąć tego przepełnienia tekstu.

Wiem, że mogę tego uniknąć, włączając „zawijanie słów” i dostosowując wysokość wiersza. Ale nie tego chcę.

Chcę zmienić DOMYŚLNE zachowanie programu Excel, aby wyświetlało wartość każdej komórki tylko w widocznym obszarze tej komórki. Bez przepełnienia, bez zawijania słów.

czy to możliwe? (Nawiasem mówiąc, korzystam z programu Excel 2010).


5
jeśli okaże się to niemożliwe, możesz użyć spacji do pustych komórek ...
Aprillion

całkiem interesujące - nie znam innego sposobu niż użycie WordWrap, Font-AutoSize lub znaków w innych komórkach.
Jook

1
Możesz obciąć dodatkowe znaki, wybierając wszystkie komórki, przechodząc do Data / Text to Columnsi określając przerwę po tylu znakach, ile zmieści się w komórce bez zawijania / przepełnienia. Pamiętaj, aby pominąć utworzoną dodatkową kolumnę, która zawiera dodatkowe znaki!
Karan,

Myślę, że to odpowiedziałoby na twoje pytanie: superuser.com/a/878605/497156
Sulaiman

„Wiem, że mogę tego uniknąć, włączając„ zawijanie słów ”i dostosowując wysokość wiersza”. Dzięki! To jest moje wybrane rozwiązanie.
Ochado

Odpowiedzi:


4

To może nie być opcja dla wszystkich, ale jeśli importujesz dokument do Arkuszy Google, ta funkcja jest domyślnie obsługiwana. Na górnym pasku menu obsługiwane są trzy typy zawijania tekstu. Przepełnienie, zawijanie i klip. Szukasz klipu.

W zależności od wymagań może to być opłacalna opcja dla niektórych osób.


5
Więc twoja odpowiedź brzmi: upuść Excela i idź z arkuszami Google.
Solar Mike

Jak powiedziałem, nie jest to opcja dla wszystkich, ale dla niektórych może być dobrym rozwiązaniem.
yellavon

@SolarMike - dziękuję. Byłem zdezorientowany, ale twój komentarz rozwiązuje tę odpowiedź. Myślę, że & yellavon zakłada, że ​​ludzie będą kłopotać się jego odpowiedzią i jako taki mają charakter obronny - zanim faktycznie wyjaśnią odpowiedź. Twój komentarz jest bardziej zwięzły w porównaniu do faktycznie opublikowanej odpowiedzi.
barrypicker

W rzeczywistości jest to odpowiedź najbardziej zbliżona do rzeczywistego rozwiązania. Odkryłem, że w Excelu możesz zrobić coś podobnego do tego. Dostosuj kolumnę do wymaganej szerokości, a następnie włącz wypaczanie słów w kolumnie (co spowoduje wzrost wszystkich wysokości wierszy), a następnie ostatecznie wybierz wszystkie rzędy i dostosuj wysokości wierszy do żądanej wysokości. Voila! Teraz masz tekst w komórkach, które nie przelewają się do sąsiednich komórek. (@ Yellavon: Przyjmuję twoją odpowiedź, możesz chcieć ją zaktualizować, aby zawierała to zachowanie EXcel, aby ludzie mieli łatwiejszy dostęp do rozwiązania)
e-mre

49

Tak, możesz zmienić to zachowanie, ale prawdopodobnie nie będziesz chciał skutków ubocznych, które to powoduje.

Kluczem do ograniczenia zawartości komórki do granic komórki niezależnie od tego, czy sąsiednia komórka zawiera dane, jest wyrównanie tekstu Fill. Zaznacz komórki, które nie chcą się przelewać i kliknij je prawym> Formatowanie komórek ... > zakładka Wyrównanie > poziome wyrównanie > Fill

Problem z tej metody jest to, że będzie to rzeczywiście wypełnić komórki powtarzając ich treść, gdy jest na tyle krótki, aby zmieścić się w czasach komórek wielokrotność. Zobacz poniższy zrzut ekranu, co to oznacza. (Uwaga: B7jest wypełniony „krótkim tekstem”).

Zrzut ekranu pokazujący różne zachowanie wyrównania tekstu dla domyślnego i wypełnienia

Wygląda na to, że utkniesz w obejściach posta Benedikta

Zauważ, że możesz również wypełnić sąsiednie komórki znakami tikowania ( '), używając pierwszej, bardzo sprytnej metody Benedikta . W ten sposób nie musisz niczego ukrywać, zapobiegać przepełnieniu komórek, a jeśli skopiujesz komórki jako tekst (powiedzmy do notatnika), nadal otrzymujesz pusty tekst, a nie spacje lub tyknięcia.


2
Przyjąłem twoją sugestię zastosowania metody Benedikta, aby wypełnić puste miejsca 'postaciami. Teraz nie wiem, czy powinienem głosować na twoją odpowiedź, jego, czy co! :-p
Dan Henderson

Jestem jeszcze bardziej zdezorientowany. W ogóle nie widzę sugestii do zastosowania 'w odpowiedzi Benedikta, w tym w starych edycjach! Głosowałem za obiema, na wszelki wypadek ...
user56reinstatemonica8

1
@ user568458: Moja notatka była odmianą odpowiedzi Benedikta. Możesz wypełnić komórki ' zamiast wypełnić je, N/Ajak sugerował Benedikt. Właśnie przekonałem się, że metoda Benedikta wypełniania wszystkich pustych komórek dowolną wartością jest bardzo przekonująca.
Marcus Mangelsdorf,

1
„Wypełnienie” spowoduje również wyrównanie liczb do lewej.
posfan12

Jak ... niesamowicie głupi. (Excel, nie ta odpowiedź.)
TJ Crowder

26

Oto jak to robię.

  1. Opcja 1: Wypełnij wszystkie puste komórki „N / A”, a następnie użyj formatowania warunkowego, aby tekst był niewidoczny.
  2. Lub Opcja 2: Wypełnij wszystkie puste komórki 0 i użyj ustawienia Excela, aby ukryć wartości zerowe.

Wypełnianie wszystkich pustych komórek: (testowane na komputerze Mac)

  • Edytuj → Idź do ... → Specjalne ... (W systemie Windows: Strona główna → Edycja → Znajdź i wybierz → Idź do specjalnego ...)
  • Wybierz „Puste miejsca” i naciśnij OK.
  • Wszystkie puste komórki są teraz zaznaczone. Nic nie klikaj.
  • Wpisz „N / A” lub 0, a następnie naciśnij Ctrl+ Enter . Spowoduje to wstawienie wartości do wszystkich wybranych komórek.

Formatowanie warunkowe w celu ukrycia „nie dotyczy”

  • Format → Formatowanie warunkowe.
  • Utwórz nową regułę.
  • Styl: klasyczny i użyj formuły, aby określić, które komórki sformatować.
  • Formuła: =A1="N/A"
  • Sformatuj za pomocą: Format niestandardowy: Kolor czcionki biały, bez wypełnienia.

Ukryj zero

  • Excel → Ustawienia → Widok.
  • Odznacz „Pokaż wartości zerowe”.

_______________
  To Ctrl+ Enter, a nie Ctrl+ Shift+Enter .


13

Spróbuj wpisać formułę = "" (to dwa podwójne cudzysłowy) w sąsiedniej komórce, w której nie chcesz widzieć przepełnienia. To ocenia na „null”, który nie wyświetla niczego i nie wpływa na matematykę.


1
W połączeniu z postem z Benedikta uważam, że jest to jedno z najprostszych rozwiązań, ponieważ nie musisz niczego ukrywać.
Matt

To działało dla mnie najlepiej.
Peter

Wpływa na funkcję statystyczną COUNTA, która zlicza liczbę komórek w zakresie, który nie jest pusty . Komórka wyświetlająca ciąg zerowy w wyniku formuły nie jest pusta i zostanie zliczona.
ProfoundlyOblivious

4

Użyj wyrównania tekstu w poziomie „Wypełnij” dla komórki. Możesz go znaleźć w tym samym miejscu, co inne opcje wyrównania, które powinny rozwiązać Twój problem

Wypełnij wyrównanie tekstu


4
Czy to nie było objęte odpowiedzią Marcusa Mangelsdorfa ?
Stevoisiak

9
Zauważ też, że Marcus wyjaśnia poważny problem z tą metodą - że jeśli zawartość komórki jest wystarczająco krótka, zostaną one zduplikowane. Zatem „A” byłoby „AAAAAAAA”.
Blackwood

Fajnie dzięki. Kliknij komórki prawym przyciskiem myszy, aby je ponownie sformatować, wybierz „Formatuj komórki”, a resztę wykonaj jako wskazówki. Zadziałało.
Catbuilts

4

Rozwijając rozwiązanie polegające 'na blokowaniu rozlewu tekstu z prawej strony Excela do sąsiednich pustych komórek, czasami nie chcesz modyfikować / uszkadzać kolumny danych, wstawiając tam tę wartość.

Zamiast wstawiać 'rzeczywiste wartości danych, możesz utworzyć w tym celu nową dedykowaną kolumnę pionową, całkowicie wypełnioną 'znakami do samego końca.

1. Kolumna barierowa

wprowadź opis zdjęcia tutaj

2. Wstaw kolumnę „bariera” po lewej stronie kolumny, którą chcesz zabezpieczyć.

wprowadź opis zdjęcia tutaj

3. Zwiń kolumny barierowe, ustawiając ich szerokość na małą wartość

Ustaw szerokość kolumny na wartość taką jak .1lub alternatywnie utrzymuj szersze kolumny barierowe, aby działały jak margines lub biała spacja między kolumnami.

wprowadź opis zdjęcia tutaj

Pamiętaj, że musisz ustawić szerokość większą niż zero; ustawienie szerokości kolumny bariery pionowej na zero spowoduje powrót do niepożądanego działania przepełnienia komórki.

4. Voila!


1

W programie Excel dostosuj kolumnę do wymaganej szerokości, a następnie włącz wypaczanie słów w tej kolumnie (co spowoduje wzrost wszystkich wysokości wierszy), a następnie wybierz wszystkie wiersze i dostosuj wysokości wierszy do żądanej wysokości. Voila! Teraz masz tekst w komórkach, które nie przelewają się do sąsiednich komórek.

(Uwaga: Znalazłem to i opublikowałem jako komentarz w wybranej odpowiedzi, ale także opublikowałem jako odpowiedź, więc łatwiej będzie znaleźć dla innych.)


1
Drugi akapit pytania: „Wiem, że mogę tego uniknąć, włączając„ zawijanie słów ”i dostosowując wysokość wiersza. Ale nie tego chcę”.
fixer1234

0

W tym samym myśleniu, że Arkusze Google mogą nie być dla wszystkich , to makro może nie być dla wszystkich, ale może być dla kogoś .

Przebiega przez wybrany zakres i zastępuje przepełnione komórki obciętym tekstem.

Flagi określają, czy:

  • obrażający tekst jest kopiowany na ten sam adres względny w nowym arkuszu lub jeśli jest odrzucany.

  • obcięty tekst jest zakodowany na stałe lub połączony za pomocą formuły arkusza roboczego =LEFT()

  • obcięty tekst jest linkowany do pełnego ciągu w nowym arkuszu.

Domyślnie przechowuje dane i używa obu łączy.

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

Ostatnia uwaga: Użyłem go do osobistych projektów i uznałem, że jest niezawodny, ale proszę zapisać swoją kopię zapasową i wykonać kopię zapasową przed wypróbowaniem jakiegokolwiek nieznanego makra .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.