excel içinde karakter ve rakam bölme nasıl?


2

Aslında karakter ve rakamları aynı hücrede, Excel 2010'da bölmek istiyorum

Hücrem şöyle: test03ok
Başka bir hücre olabilir:34test

Rakamları harflerden ayırmak istiyorum, böylece yukarıdaki 2 örnekten istediğim şey

test 03 tamam
34 test

Bu Excel'de VBa olmadan yapılabilir mi yoksa VBa kullanmalı mıyım?


Bunun bir formül veya başka varsayılan araçlarla mümkün olduğunu sanmıyorum, ancak VBA kullanarak. Bu senin için iyi olur mu?
Jerry,

Tamam Mike. Ancak test00002notok gibi bir şeye sahip olabileceğinizi ve ayrı ayrı 'test' '00002' ve 'notok' yapmayı umduğunuzu farz ediyorum, değil mi?
Jerry,

@Mike Eh, bunu bir formülle veya bir araçla yapamazsınız :( Sanırım VBA'da bir regex ile yapabilirsin (bunun nasıl yapıldığını bilmiyorum ama biraz araştırma yapabilirim ve bir şey ile gelip)
Jerry

Excel'de düzenli olarak düzenli ifadeler yapamazsınız, bkz. Stackoverflow.com/questions/9744602/… ve searchengineland.com/… alternatifleri için
Dave

@Mike, bu konu hakkındaki yorumların bir kısmını silelim, böylece düzenli kalsın. Okumayı diğer insanlar için kolaylaştırır. Gönderi şimdi güncellendiğinden tüm yorumlarımı sildim.
Dave,

Yanıtlar:


1

İşte hile yapması gereken regex tabanlı bir işlev. VBA editör menüsünden eklediğiniz standart bir modüle yapıştırın. Tıklayarak düzenleyiciye erişebilirsiniz Visual Basic üzerindeki Geliştirici kurdele sekmesine. Sonra menüden Ekle -> Standart Modül'ü seçin.

Ayrıca Microsoft VBScript Regular Expressions 5.5kütüphaneye bir referans ayarlamanız gerekecektir . Bunu yapmak için, editör menüsünde Araçlar -> Referanslar'a tıklayın. Girişi bulmak için aşağı kaydırın ve referansı ayarlamak için işaretleyin.

Regex uzmanları benim kullandığım düzeni geliştirmek ister. Çalışma sayfası TRIMişlevini kullanmaktan başarıyla kurtulduğum bazı dizgilere fazladan boşluk ekliyor .

Function ReNSpace(text As String)
    Dim regex As New RegExp
    regex.Pattern = "(?:(\D+)?(\d+))|(?:(\D+)(\d+)?)"
    regex.Global = True
    regex.IgnoreCase = True
    ' Test if a match is found
    If regex.Test(text) = True Then
        ReNSpace = WorksheetFunction.Trim(regex.Replace(text, "$1 $2 $3 $4"))
    Else
        ReNSpace = CVErr(xlErrValue)
    End If
    Set regex = Nothing
End Function
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.