• DİKKAT

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

Kelime ayıklama

Barons

Altın Üye
Katılım
14 Mayıs 2005
Mesajlar
967
Excel Vers. ve Dili
Microsoft Ofis 365
Merhaba
Forumda önce araştırdım ama istediğim gibi olanını bulamadım.

Yapmak istediğim ; Ekteki dosyada D kolonundaki rakam ve harf karışımı olan yazıdan firma ismini ayıklayıp E kolonuna formulle yazdırmak.

Teşekkürler
 

Ekli dosyalar

Metni Sütunlara Dönüştür fonksiyonunu kullanın. Ayıraç olarak virgül(,) seçin.
 
sn Hamitcan teşekkürler ancak veriler yüzlerce ve bir sql den surekli excele akıyor.Formulle halledilemezmi acaba?

Teşekkürler
 
Adres bilgileriniz yanında başka bilgilerde mevcut, verileriniz belli bir düzende olsaydı formül ile yakalanabilirdi.
 
iki virgul arasını seç şeklinde bir formul yazılamazmı? çünkü hepsi iki virgul arasında bulunuyor.
 
4.satırda 1.virgülden sonra ünvan başlıyor 5.satırda 2.virgülden sonra. Bu durumu nasıl aşacağız.
 
zaten 2 tane bu şekilde başka şekil yok.ya 1.nci virgul yada 2.nci virgulden sonra başlıyor hamitcan hocam
 
Ekteki örnek dosyayı inceleyiniz.

Kullanıcı tanımlı fonksiyon hazırladım.

Ayıklanan verinin içinde "LTD", "ŞTİ","TİC", "SAN" ifadeleri varsa sonuç vermektedir.

İsteğinize göre revize edebilirsiniz.

Kod:
Function KPARÇAAL(Veri As Range, Optional Ayıraç As String = ",") As String
    Kontrol = Array("LTD", "ŞTİ", "TİC", "SAN")
    Data = Split(Veri.Text, Ayıraç)
    For X = 0 To UBound(Data)
        If Not IsNumeric(Data(X)) Then
            For Y = 0 To UBound(Kontrol)
                If InStr(1, Data(X), Kontrol(Y)) > 0 Then
                    KPARÇAAL = Data(X)
                    Exit For
                End If
            Next
        End If
    Next
End Function
 

Ekli dosyalar

Alternatif;
Kod:
[FONT="Trebuchet MS"][SIZE="2"]Sub Emre()
    Dim Reg As Object, i%, yaz$
    Columns(5).Clear
    Set Reg = CreateObject("VBScript.RegExp")
    Reg.Global = True
    Reg.Pattern = "\D+S*,"
    For i = 2 To Range("d65536").End(3).Row
        yaz = Replace(Replace(Reg.Execute(Cells(i, 4)).Item(0), ",", ""), "Toptan Satış Faturası", "")
        Cells(i, 5) = yaz
    Next i
    i = Empty: Set Reg = Nothing: yaz = vbNullString
End Sub[/SIZE][/FONT]
 
İlgilerini esirgemeyen hamitcan hocama,Korhan hocam ve Murat hocama çok teşekkürler...
 
Bu arada benim istediğim çözüm Korhan hocamın ürettiği çözümdür.Sahsına ayrıca teşekkür ederim.
 
Merhaba benimde benzer bir sorum var.
Aşağıdaki şekilde aynı hücrede yazılı bilgileri, ayrı kolonlara aktarmak istiyorum.
AYŞE NAZAN ÇAĞLAR , KADİR GÜRGEN BALCI , HASAN KONDU GİTTİ

teşekkürler
 
Sayın besen metni sütunlara dönüştürden yapabilirsiniz, ayraç olarak virgül'ü seçin.
 
Kullanıcı tanımlı fonksiyonla çözüm istiyorsanız ekteki örnek dosyayı inceleyiniz.

Kullanılan fonksiyon;

Kod:
Function KPARÇAAL(Veri As Range, Ayıraç As String, Kaçıncı As Integer) As String
    KPARÇAAL = Split(Veri.Text, Ayıraç)(Kaçıncı - 1)
End Function
 

Ekli dosyalar

Çok teşekkür.
İngilizcesi lütfen.

Function KPARÇAAL(Veri As Range, Ayıraç As String, Kaçıncı As Integer) As String
KPARÇAAL = Split(Veri.Text, Ayıraç)(Kaçıncı - 1)
End Function
 
Makro ile yazıldığı için İngilizcesi yoktur.

Olduğu gibi kullanabilirsiniz.
 
Selamlar,

Bu işlem makrosuz bir şekilde formül ile yapılabilir mi ? Mutlaka virgul adedi önemli ancak bende makrosuz yapmam gerekiyor :(

Örneğin bir süredir aşağıdaki değerleri yan yana ayrı hücrelere yazdırabilmek için çabalıyorum, bir türlü sonuca gidemedim

3,7,9-12,15,17,21-24

Amacım bunları;

3 | 7 | 9 | 10 | 11 | 12 | 15 | 17 | 21 | 22 | 23 | 24

...gibi bir düzene sokarak maksimum 30 sütuna dağıtmak ancak hakikaten karmaşık bir durum
 
Merhaba.

Sadece "," karakterine göre sütunlara ayırmak için aşağıdaki formülü kullanabilirsiniz.
Verinin A1 hücresinde olduğu varsayılmıştır.
.
Kod:
[FONT="Arial Narrow"]=PARÇAAL(EĞERHATA(YERİNEKOY(YERİNEKOY($A1;",";"|";SÜTUN()-1);",";"#";SÜTUN()-2);YERİNEKOY($A1;",";"|";SÜTUN()-1));EĞERHATA(BUL("#";EĞERHATA(YERİNEKOY(YERİNEKOY($A1;",";"|";SÜTUN()-1);",";"#";SÜTUN()-2);YERİNEKOY($A1;",";"|";SÜTUN()-1));1);0)+1;EĞERHATA(BUL("|";EĞERHATA(YERİNEKOY(YERİNEKOY($A1;",";"|";SÜTUN()-1);",";"#";SÜTUN()-2);YERİNEKOY($A1;",";"|";SÜTUN()-1));1);UZUNLUK($A1)+1)-EĞERHATA(BUL("#";EĞERHATA(YERİNEKOY(YERİNEKOY($A1;",";"|";SÜTUN()-1);",";"#";SÜTUN()-2);YERİNEKOY($A1;",";"|";SÜTUN()-1));1);0)-1)[/FONT]
 
Selamlar,

Bu işlem makrosuz bir şekilde formül ile yapılabilir mi ? Mutlaka virgul adedi önemli ancak bende makrosuz yapmam gerekiyor :(

Örneğin bir süredir aşağıdaki değerleri yan yana ayrı hücrelere yazdırabilmek için çabalıyorum, bir türlü sonuca gidemedim

3,7,9-12,15,17,21-24

Amacım bunları;

3 | 7 | 9 | 10 | 11 | 12 | 15 | 17 | 21 | 22 | 23 | 24

...gibi bir düzene sokarak maksimum 30 sütuna dağıtmak ancak hakikaten karmaşık bir durum

Makro kullanmama sebebiniz vardır mutlaka, ancak olurda fikriniz değişir ise,
Bu konuyu inceleyiniz.
Sağ tuş / Kolon İşlemleri/ Metni Sütunlara Çevir Ayırıca karakter/ , ve - yi yazıp aşağıdan kolona uygula deyin ve istediğiniz parçalama yapılmış olsun.

http://www.excel.web.tr/f52/excel-zel-lemler-menusu-eklentisi-sao-tu-t157219.html


excelozelislemler6.jpg
 
Geri
Üst