Excel: evitar que el texto de la celda se desborde en la siguiente celda (vacía)


72

Cuando tiene texto en una celda de Excel que es demasiado largo para mostrarse en el área visible de esa celda, y la siguiente celda de la derecha está vacía, Excel permite que el texto se muestre en la siguiente celda (y la siguiente, y el siguiente, según sea necesario). Quiero cambiar esto; Quiero evitar este desbordamiento de texto.

Sé que puedo evitar esto habilitando "ajuste de palabra" y ajustando la altura de la fila. Pero eso no es lo que quiero.

Quiero cambiar el comportamiento POR DEFECTO de Excel para que muestre el valor de cada celda solo en el área visible de esa celda. Sin desbordamiento, sin envoltura de palabras.

es posible? (Por cierto, estoy usando Excel 2010).


55
si resulta que no es posible, puedes usar un espacio para las celdas vacías ...
Aprillion

bastante interesante: no conozco otra forma que usar WordWrap, Font-AutoSize o caracteres en las otras celdas.
Jook

1
Puede truncar caracteres adicionales seleccionando todas las celdas, yendo Data / Text to Columnsy especificando un salto después de tantos caracteres como puedan caber en una celda sin envolver / desbordar. ¡Recuerde omitir la columna adicional creada que contiene los caracteres adicionales!
Karan

Supongo que esto respondería a su pregunta: superuser.com/a/878605/497156
Sulaiman

"Sé que puedo evitar esto habilitando" ajuste de palabra "y ajustando la altura de la fila". ¡Gracias! Esa es mi solución seleccionada.
Ochado

Respuestas:


4

Es posible que esta no sea una opción para todos, pero si importa el documento en Hojas de cálculo de Google, esta funcionalidad es compatible de manera predeterminada. En la barra de menú superior, se admiten tres tipos de ajuste de texto. Desbordamiento, envoltura y clip. Estás buscando un clip.

Dependiendo de los requisitos, esta puede ser una opción viable para algunas personas.


55
Entonces, su respuesta es en realidad decir soltar Excel e ir con las hojas de Google.
Solar Mike

Como dije, no es una opción para todos, pero puede ser una buena solución para algunos.
yellavon

@SolarMike - gracias. Estaba confundido, pero tu comentario resuelve esta respuesta. Creo que yellavon asume que la gente se negará a su respuesta y, como tal, se pone a la defensiva, antes de explicar realmente la respuesta. Su comentario es más conciso en comparación con la respuesta publicada real.
barrypicker

En realidad, esta es la respuesta más cercana a una solución real. Descubrí que en Excel puedes hacer algo similar a esto. Ajuste la columna al ancho requerido, luego habilite la deformación de palabras en la columna (lo que hará que aumenten todas las alturas de fila) y finalmente seleccione todas las filas y ajuste las alturas de fila a la altura deseada. Voila! Ahora tiene texto en las celdas que no se desbordan a las celdas adyacentes. (@ Yellavon: aceptaré su respuesta, es posible que desee actualizarla para que contenga este comportamiento EXCEL para que las personas puedan acceder a la solución más fácilmente)
e-mre

49

Sí, puede cambiar este comportamiento, pero probablemente no querrá los efectos secundarios que esto causa.

La clave para limitar el contenido de la celda a los límites de la celda independientemente de si la celda adyacente contiene datos es la alineación del texto Fill. Seleccione las celdas que no quiere desbordarse y haga clic derecho en ellas> Formato de celdas ... > ficha Alineación > Alineación horizontal > Fill

El problema con este método es que esto realmente llenará las celdas repitiendo su contenido cuando sea lo suficientemente corto como para caber en la celda varias veces. Vea a continuación la captura de pantalla para saber qué significa esto. (Tenga en cuenta que B7está lleno de 'texto corto').

Captura de pantalla que muestra los diferentes comportamientos de alineación de texto por defecto y relleno

Parece que estarás atrapado con las soluciones en la publicación de Benedikt

Tenga en cuenta que también puede llenar las celdas adyacentes con caracteres de marca ( ') utilizando el primer método muy inteligente de Benedikt . De esta manera, no tiene que ocultar nada, evitar el desbordamiento de las celdas y si copia las celdas como texto (digamos en el bloc de notas) aún obtendrá texto vacío y no espacios ni marcas.


2
Así que tomé su sugerencia de seguir el método de Benedikt para llenar los vacíos con 'caracteres. ¡Ahora no sé si debería votar tu respuesta, o la suya, o qué! :-p
Dan Henderson

Estoy aún más confundido. ¡No veo ninguna sugerencia para usar 'en la respuesta de Benedikt, incluso en ediciones antiguas! He votado a favor de ambos, por si acaso ...
user56reinstatemonica8

1
@ user568458: Mi nota fue en realidad una variación de la respuesta de Benedikt. Puede llenar las celdas en ' lugar de llenarlas N/Acomo sugirió Benedikt. Acabo de encontrar el método de Benedikt de llenar todas las celdas en blanco con un valor arbitrario muy convincente.
Marcus Mangelsdorf

1
'Rellenar' hará que los números se alineen a la izquierda también.
posfan12

Qué ... increíblemente estúpido. (Excel, no esta respuesta.)
TJ Crowder

26

Así es como lo hago.

  1. Opción 1: Rellene todas las celdas vacías con un "N / A" y luego use el Formato condicional para hacer que el texto sea invisible.
  2. O la Opción 2: Rellene todas las celdas vacías con 0 y use una configuración de Excel para ocultar los valores cero.

Llenar todas las celdas vacías: (probado en una Mac)

  • Editar → Ir a ... → Especial ... (En Windows: Inicio → Edición → Buscar y seleccionar → Ir a especial ...)
  • Seleccione "Blanks" y presione OK.
  • Todas las celdas en blanco están seleccionadas ahora. No hagas clic en nada.
  • Escriba "N / A" o 0, y luego presione Ctrl+ Enter . Esto insertará el valor en todas las celdas seleccionadas.

Formato condicional para ocultar "N / A"

  • Formato → Formato condicional.
  • Crea una nueva regla.
  • Estilo: clásico y use una fórmula para determinar qué celdas formatear.
  • Fórmula: =A1="N/A"
  • Formato con: Formato personalizado: color de fuente blanco, sin relleno.

Ocultar ceros

  • Excel → Configuración → Ver.
  • Desmarque "Mostrar valores cero".

_______________
  Eso es Ctrl+ Enter, no Ctrl+ Shift+Enter .


13

Intente ingresar la fórmula = "" (son dos comillas dobles) en la celda adyacente donde no desea ver el desbordamiento. Esto se evalúa como "nulo", que no muestra nada y no afectará las matemáticas.


1
En combinación con la publicación de Benedikt, creo que esta es una de las soluciones más fáciles, ya que no tiene que ocultar nada.
Matt

Esto funcionó mejor para mí.
Peter

Afecta la función estadística COUNTA, que cuenta el número de celdas en un rango que no están vacías . Una celda que muestra una cadena de longitud cero como resultado de una fórmula no está vacía y se contará.
Profundamente

4

Use la alineación de texto horizontal "Rellenar" para la celda. Puede encontrarlo en el mismo lugar que otras opciones de Alineación que deberían resolver su problema

Alineación de texto de relleno


44
¿No estaba esto cubierto por la respuesta de Marcus Mangelsdorf ?
Stevoisiak

99
También tenga en cuenta que Marcus explica un problema grave con este método: que si el contenido de la celda es lo suficientemente corto, se duplicará. Entonces "A" se convertiría en "AAAAAAAA".
Blackwood

Genial gracias. Haga clic derecho en las celdas que necesita volver a formatear, elija "Formatear celdas" y haga el resto como guía. Funcionó.
Catbuilts

4

Ampliando la solución del uso 'para bloquear el derrame de texto hacia la derecha de Excel en celdas en blanco adyacentes, a veces no desea modificar / corromper su columna de datos insertando ese valor allí.

En lugar de insertar el 'en sus valores de datos reales, puede crear una nueva columna vertical dedicada para este propósito, completamente llena de 'caracteres hasta el fondo.

1. columna de barrera

ingrese la descripción de la imagen aquí

2. Inserte la columna "barrera" a la izquierda de la (s) columna (s) que desea proteger.

ingrese la descripción de la imagen aquí

3. Contraiga las columnas de barrera estableciendo su ancho de columna en un valor pequeño

Establezca el ancho de columna en un valor como .1, o alternativamente, mantenga las columnas de barrera más anchas para que actúen como un margen o espacio en blanco entre columnas.

ingrese la descripción de la imagen aquí

Tenga en cuenta que debe establecer un ancho mayor que cero; establecer el ancho de la columna de barrera vertical en cero revertirá al comportamiento de desbordamiento de celda no deseado.

4. ¡Voila!


1

En Excel, ajuste la columna al ancho requerido, luego habilite la deformación de palabras en esa columna (lo que hará que aumenten todas las alturas de fila) y finalmente seleccione todas las filas y ajuste las alturas de fila a la altura deseada. Voila! Ahora tiene texto en celdas que no se desbordan a las celdas adyacentes.

(Nota: Encontré esto y lo publiqué como un comentario en la respuesta seleccionada, pero también lo publiqué como respuesta, por lo que será más fácil de encontrar para otros).


1
El segundo párrafo de la pregunta: "Sé que puedo evitar esto habilitando" ajuste de palabra "y ajustando la altura de la fila. Pero eso no es lo que quiero".
Fixer1234

0

En la misma línea de pensamiento, las Hojas de cálculo de Google pueden no ser para todos , esta macro puede no ser para todos, pero puede ser para alguien .

Se ejecuta a través del rango seleccionado y reemplaza las celdas desbordadas con texto truncado.

Banderas determina si:

  • el texto ofensivo se copia a la misma dirección relativa en una nueva hoja de trabajo o si se descarta.

  • el texto truncado está codificado o vinculado mediante una fórmula =LEFT()

  • el texto truncado está vinculado a la cadena completa en la nueva hoja.

El valor predeterminado es retener datos y usar ambos enlaces.

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

Nota final: Lo he usado para proyectos personales y lo encontré confiable, pero guarde y haga una copia de seguridad de su trabajo antes de intentar cualquier macro desconocida .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.