Excel - Hücre metninin bir sonraki (boş) hücreye taşmasını önleyin


71

Bir Excel hücresinde, o hücrenin görünür alanında gösterilemeyecek kadar uzun metniniz varsa ve sağdaki bir sonraki hücre boşsa, Excel, metnin bir sonraki hücrede (ve bir sonraki ve sonra, gerektiği gibi). Bunu değiştirmek istiyorum; Bu metin taşmasından kaçınmak istiyorum.

"Word wrap" özelliğini etkinleştirerek ve satır yüksekliğini ayarlayarak bunu önleyebileceğimi biliyorum. Ama istediğim bu değil.

Excel'in DEFAULT davranışını değiştirmek istiyorum, böylece her hücrenin değerini yalnızca hücrenin görünür alanında gösterir. Taşma yok, kelime sarma yok.

Mümkün mü? (Bu arada, Excel 2010 kullanıyorum.)


5
eğer mümkün
olmuyorsa

oldukça ilginç - WordWrap, Font-AutoSize veya diğer hücrelerdeki karakterleri kullanmaktan başka bir yol bilmiyorum.
Jook

1
Tüm hücreleri seçerek, giderek Data / Text to Columns/ taşmadan bir hücreye sığabileceği kadar karakterden sonra bir mola belirleyerek fazladan karakterleri kesebilirsiniz . Ekstra karakterleri tutan ek sütunu atlamayı unutmayın !
Karan

Sanırım bu sorunuza cevap verecektir: superuser.com/a/878605/497156
Sulaiman

"Bunu" word wrap "özelliğini etkinleştirerek ve satır yüksekliğini ayarlayarak önleyebileceğimi biliyorum. Teşekkürler! Bu benim seçtiğim çözüm.
Ochado

Yanıtlar:


4

Bu herkes için bir seçenek olmayabilir, ancak dokümanı Google Sayfalarına içe aktarırsanız, bu işlevsellik varsayılan olarak desteklenir. Üst menü çubuğunda, üç tür metin sarma desteklenir. Taşma, sarma ve klip. Klibi arıyorsun.

Gereksinimlere bağlı olarak, bu bazı insanlar için uygun bir seçenek olabilir.


5
Yani cevabınız aslında Excel'i bırakıp Google levhalarla gitmektir.
Solar Mike,

Dediğim gibi, herkes için bir seçenek değil, bazıları için iyi bir çözüm olabilir.
yellavon

@SolarMike - teşekkürler. Kafam karıştı, ama yorumunuz bu cevabı çözüyor. Bence ve Yellavon, insanların cevabını baltalayacağını varsayıyor ve savunuculuğunu savunuyor - aslında cevabı açıklamadan önce. Yorumunuz asıl yayınlanan cevapla karşılaştırıldığında daha kısa.
barrypicker

Aslında bu, gerçek bir çözüme en yakın cevap olarak gerçekleşir. Excel'de buna benzer bir şey yapabileceğinizi söyledim. Sütunu istenen genişliğe ayarlayın, sonra sütun üzerinde kelime atlama özelliğini etkinleştirin (bu, tüm satır yüksekliklerinin artmasına neden olur) ve ardından tüm satırları seçin ve satır yüksekliklerini istenen yüksekliğe ayarlayın. İşte bu kadar! Artık bitişik hücrelere taşmayan hücrelerde metin var. (@ Yellavon: Cevabınızı kabul edeceğim, bu EXcel davranışını içerecek şekilde güncellemek isteyebilirsiniz, böylece insanlar çözüme daha kolay erişebilirler)
e-mre

49

Evet, bu davranışı değiştirebilirsiniz, ancak muhtemelen bunun neden olduğu yan etkileri istemeyeceksiniz.

Bitişik hücrenin veri içerip içermediğinden bağımsız olarak hücre içeriğini hücrenin sınırlarıyla sınırlandırmanın anahtarı metin hizalamasıdır Fill. Taşmak istemediğiniz hücreleri seçin ve sağ tıklayın> Hücreleri formatla ... > Hizalama sekmesi > Yatay hizalama > Dolgu

Sorun bu yöntemle bu aslında olmasıdır dolgu hücre birden çok kez sığacak kadar kısa olduğu zaman içeriklerini tekrarlayarak hücreleri. Bunun ne anlama geldiğini görmek için aşağıdaki ekran görüntüsüne bakın. (Not B7edilir doldurulmuş 'kısa metin' ile.)

Varsayılan ve dolgu için farklı metin hizalama davranışını gösteren ekran görüntüsü

Benedikt'in görevindeki geçici çözümlerden mahrum kalacaksınız gibi görünüyor

Ayrıca, 'Benedikt'in ilk, çok akıllı yöntemini kullanarak bitişik hücreleri kene karakterleriyle ( ) doldurabileceğinizi unutmayın . Bu şekilde hiçbir şey gizlemek zorunda kalmazsınız, hücre taşmasını önler ve hücreleri metin olarak kopyalarsanız (not defterine diyelim), boşluk veya tik işareti kullanmazsınız.


2
Ben de Benedikt'in boşluğu 'karakterlerle doldurma yöntemini takip etme önerinizi kabul ettim . Şimdi cevabınızı mı yükseltmeliyim, onun cevabını mı yoksa neyi! :-p
Dan Henderson

Kafam daha da karıştı. 'Benedikt'in cevabında eski düzenlemeler de dahil olmak üzere herhangi bir öneri göremiyorum ! Her ikisinde de, sadece davada ...
user56reinstatemonica8

1
@ user568458: Notum aslında Benedikt'in cevabının bir çeşitlemesiydi. Sen ile hücreleri doldurmak olabilir ' yerine ait bunları doldurarak N/ABenedikt önerildiği gibi. Benedikt'in tüm boş hücreleri keyfi bir değerle doldurma yöntemini çok çekici buldum .
Marcus Mangelsdorf

1
'Doldur', sayıların da aynı hizada kalmasına neden olur.
posfan12

Nasıl ... inanılmaz aptalca. (Excel, bu cevabı değil.)
TJ Crowder

26

İşte böyle yapıyorum.

  1. Seçenek 1: Tüm boş hücreleri "N / A" ile doldurun ve ardından metni görünmez yapmak için Koşullu Formatlama kullanın.
  2. Veya Seçenek 2: Tüm boş hücreleri 0 ile doldurun ve sıfır değerleri gizlemek için bir Excel ayarı kullanın.

Tüm boş hücrelerin doldurulması: (Mac'te test edilmiştir)

  • Düzenle → Git ... → Özel ... (Windows'ta: Ana Sayfa → Düzenleme → Bul ve Seç → Özel Git ...)
  • "Boşluklar" ı seçin ve OK tuşuna basın.
  • Tüm boş hücreler şimdi seçildi. Hiçbir şey tıklatmayın.
  • "N / A" veya 0 yazın ve sonra Ctrl+ Enter tuşuna basın . Bu, değeri seçilen tüm hücrelere ekleyecektir .

"Yok" Gizlemek İçin Koşullu Biçimlendirme

  • Biçim → Koşullu Biçimlendirme.
  • Yeni kural oluştur.
  • Stil: Klasik ve Hangi hücrelerin biçimlendirileceğini belirlemek için bir formül kullanın.
  • Formül: =A1="N/A"
  • Formatla: Özel Format: Yazı tipi rengi beyaz, dolgu yok.

Sıfırları Gizle

  • Excel → Ayarlar → Göster.
  • "Sıfır değerleri göster" i tıklayın.

_______________
  budur Ctrl+ Enter, değil Ctrl+ Shift+Enter .


13

Bitişik hücreye taşmayı görmek istemediğiniz bitişik hücreye = "" (bu iki çift tırnak işareti) girmeyi deneyin. Bu, hiçbir şey göstermeyen ve matematiği etkilemeyecek olan "null" olarak değerlendirilir.


1
Benedikt'in gönderisiyle birlikte, bunun hiçbir şeyi gizlemeniz gerekmediğinden en kolay çözümlerden biri olduğuna inanıyorum.
Matt

Bu benim için en iyi çalıştı.
Peter,

İstatistiksel işlevini etkiliyorsa COUNTA, boş olmayan bir aralıktaki hücrelerin sayısını sayar . Formülün sonucu olarak sıfır uzunluklu bir dize görüntüleyen bir hücre boş değildir ve sayılacaktır.
DerindenOblivious

4

Hücre için Yatay Metin hizalamasını "Doldur" kullanın. Sorununuzu çözmesi gereken diğer Hizalama seçenekleriyle aynı yerde bulabilirsiniz.

Metin Hizalamasını Doldur


4
Bu, Marcus Mangelsdorf'un cevabı kapsamında değildi mi?
Stevoisiak

8
Ayrıca, Marcus'un bu yöntemle ilgili ciddi bir sorunu açıkladığına dikkat edin - hücrenin içeriği yeterince kısaysa kopyalanacaklarını unutmayın. Böylece "A" "AAAAAAAA" olur.
Blackwood

Güzel, teşekkürler. Hücrelere sağ tıklamanız, yeniden biçimlendirmeniz, "Hücreleri biçimlendir" i seçmeniz ve gerisini kılavuzunuz olarak yapmanız gerekir. İşe yaradı.
Catbu,

4

Excel'in sağdaki metni bitişik boş hücrelere dökmesini 'engellemek için kullanma çözümünü genişleterek , bazen bu değeri oraya ekleyerek veri sütununuzu değiştirmek / bozmak istemezsiniz.

'Gerçek veri değerlerine eklemek yerine , tamamen 'aşağıya karakterlerle dolu, bu amaç için yeni bir dikey sütun oluşturabilirsiniz .

1. Bariyer sütunu

görüntü tanımını buraya girin

2. Korunmak istediğiniz sütunun / sütunların soluna "bariyer" sütunu yerleştirin.

görüntü tanımını buraya girin

3. Sütun genişliklerini küçük bir değere ayarlayarak bariyer sütunlarını daraltın

Sütun genişliğini bir değere ayarlayın .1ya da alternatif olarak kenar boşlukları ya da sütunlar arası boşluk olarak davranmak için bariyer sütunlarını daha geniş tutun.

görüntü tanımını buraya girin

Sıfırdan büyük bir genişlik ayarlamanız gerektiğini unutmayın; dikey bariyer sütun genişliğini sıfıra ayarlamak, istenmeyen hücre taşma davranışına geri dönecektir.

4. Voila!


1

Excel'de, sütunu istenen genişliğe ayarlayın, ardından o sütunda sözcük çarpmasını etkinleştirin (bu, tüm satır yüksekliklerinin artmasına neden olur) ve ardından tüm satırları seçin ve satır yüksekliklerini istenen yüksekliğe ayarlayın. İşte bu kadar! Artık, bitişik hücrelere taşmayan hücrelerde metin var.

(Not: Bunu buldum ve seçilen cevapta bir yorum olarak yayınladım, aynı zamanda bir cevap olarak da gönderdim, bu nedenle başkaları için daha kolay bulunacak.)


1
Sorunun ikinci paragrafı: "Sözcük kaydırma" özelliğini etkinleştirerek ve satır yüksekliğini ayarlayarak bundan kaçabileceğimi biliyorum. Ama istediğim bu değil. "
fixer1234

0

Google Sheets’ın herkes için olmayabileceğini düşündüğü aynı çizgide , bu makro herkes için olmayabilir, ancak biri için olabilir .

Seçilen aralıkta çalışır ve taşan hücreleri kesilmiş metinle değiştirir.

Bayraklar şunları belirler:

  • rahatsız edici metin yeni bir çalışma sayfasında aynı göreli adrese kopyalanır veya atılırsa.

  • kesilmiş metin, kodlanmış veya çalışma sayfası formülü aracılığıyla bağlanmış =LEFT()

  • kesilmiş metin yeni sayfadaki tam dizeye köprülenir.

Varsayılan veri saklamak ve her iki bağlantıyı da kullanmaktır.

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

Son not: Kişisel projeler için kullandım ve güvenilir buldum, ancak yabancı bir makroyu denemeden önce lütfen çalışmanızı kaydedin ve yedekleyin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.