• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

tablodan veri ayıklama

archers70

Altın Üye
Katılım
19 Eylül 2009
Mesajlar
126
Excel Vers. ve Dili
office 365 ing
Merhabalar,
kısa bir sorum olacak, ekteki tabloda a sütünunda bulunan verilerin ayrılması gerekli şöyleki bazıları harf ile başlamış - harf olmasın ; bazılarında - ile ayrılmış çift no yazıyor bunlar ayrılmış olmalı bazılarında da * vb başka sembollerle ayrılmış bunlarda ayrılmalı.
nasıl yapabilirim?
 

Ekli dosyalar

Aşağıdaki kodlar işini görür mü

Kod:
Sub ASutunundaTemizleVeBirlestir()
    Dim ws As Worksheet
    Dim sonSatir As Long
    Dim i As Long, k As Integer
    Dim hucreDegeri As String
    Dim geciciMetin As String
    Dim karakter As String
    
    Set ws = ActiveSheet
    sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    Application.ScreenUpdating = False
    
    For i = 1 To sonSatir
        hucreDegeri = Trim(ws.Cells(i, 1).Value)
        geciciMetin = ""
        
        If hucreDegeri <> "" Then
            For k = 1 To Len(hucreDegeri)
                karakter = Mid(hucreDegeri, k, 1)
                
                If karakter >= "0" And karakter <= "9" Then
                    geciciMetin = geciciMetin & karakter
                ElseIf karakter = "-" Or karakter = "*" Or karakter = "/" Or karakter = "+" Then
                    If Right(geciciMetin, 1) <> " " And geciciMetin <> "" Then
                        geciciMetin = geciciMetin & " "
                    End If
                End If
            Next k
            
            geciciMetin = Trim(geciciMetin)
            
            If geciciMetin <> "" Then
                If Left(geciciMetin, 1) = "0" Then
                    ws.Cells(i, 1).NumberFormat = "@"
                Else
                    ws.Cells(i, 1).NumberFormat = "General"
                End If
                
                ws.Cells(i, 1).Value = geciciMetin
            End If
        End If
    Next i
    
    Application.ScreenUpdating = True
    MsgBox "İşlem tamamlandı!", vbInformation
End Sub
 
Aşağıdaki kodlar işini görür mü

Kod:
Sub ASutunundaTemizleVeBirlestir()
    Dim ws As Worksheet
    Dim sonSatir As Long
    Dim i As Long, k As Integer
    Dim hucreDegeri As String
    Dim geciciMetin As String
    Dim karakter As String
   
    Set ws = ActiveSheet
    sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    Application.ScreenUpdating = False
   
    For i = 1 To sonSatir
        hucreDegeri = Trim(ws.Cells(i, 1).Value)
        geciciMetin = ""
       
        If hucreDegeri <> "" Then
            For k = 1 To Len(hucreDegeri)
                karakter = Mid(hucreDegeri, k, 1)
               
                If karakter >= "0" And karakter <= "9" Then
                    geciciMetin = geciciMetin & karakter
                ElseIf karakter = "-" Or karakter = "*" Or karakter = "/" Or karakter = "+" Then
                    If Right(geciciMetin, 1) <> " " And geciciMetin <> "" Then
                        geciciMetin = geciciMetin & " "
                    End If
                End If
            Next k
           
            geciciMetin = Trim(geciciMetin)
           
            If geciciMetin <> "" Then
                If Left(geciciMetin, 1) = "0" Then
                    ws.Cells(i, 1).NumberFormat = "@"
                Else
                    ws.Cells(i, 1).NumberFormat = "General"
                End If
               
                ws.Cells(i, 1).Value = geciciMetin
            End If
        End If
    Next i
   
    Application.ScreenUpdating = True
    MsgBox "İşlem tamamlandı!", vbInformation
End Sub
teşekkürler, deneyeyim . gerçi kod ile işlem yapmamıştım ama formülle daha çok çalışıyoruz. ama deneyeceğim yine de teşekkürler..
 
Formül-1

Sayılar arasında boşluk kalmasın derseniz

Kod:
=KIRP(METİNBİRLEŞTİR("";DOĞRU;EĞER(EHATALIYSA(PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)*1);EĞER(YADA(PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="-";PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="*";PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="/";PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="+");" ";"");PARÇAAL(A2;SIRALI(UZUNLUK(A2));1))))

Formül-2

Sayılar arasında boşluk olsun orijinal hali ile olsun derseniz.

Kod:
=KIRP(METİNBİRLEŞTİR(""; DOĞRU; EĞER(EHATALIYSA(PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)*1); EĞER((PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="-") + (PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="*") + (PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="/") + (PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)="+") + (PARÇAAL(A2;SIRALI(UZUNLUK(A2));1)=" "); " "; ""); PARÇAAL(A2;SIRALI(UZUNLUK(A2));1))))
 
aslında şöyle - den sonra yada * dan sonra bir sayı varsa yan sütuna da onu yazabilir..
 
C2 hücresine

Kod:
=LET(temiz; REDUCE(BÜYÜKHARF(A2); DAMGA(SIRALI(26;;65)); LAMBDA(m;h; YERİNEKOY(m;h;""))); EĞERHATA(SOLDAN(temiz; BUL("-"; YERİNEKOY(temiz; "*"; "-"))-1); temiz))

D2 hücresine

Kod:
=LET(temiz; REDUCE(BÜYÜKHARF(A2); DAMGA(SIRALI(26;;65)); LAMBDA(m;h; YERİNEKOY(m;h;""))); EĞERHATA(SAĞDAN(temiz; UZUNLUK(temiz) - BUL("-"; YERİNEKOY(temiz; "*"; "-"))); ""))

yazın
 
teşekkürler,
 
Geri
Üst