hücredeki karışık verilerden ayıklama ...

Katılım
2 Ekim 2006
Mesajlar
35
Excel Vers. ve Dili
excel 2003
Arkadaşlar ;

diyelim ki bir sütunda 500 satır var. Satır sayısı önemli olmasın
ama sütunun içindeki bilgiler o kadar karışık ki
atıyorum
"telekom (25 h 2456) "

gibi bilgiler olsun. Bu bütün satır boyunca olsun.
Ben bunun içinden () aralığındaki bilgileri alabilir miyim)

text columns özelliğinden yapıyorum ama veriler o kadar karışık ki
düzgün bir hizalaması yok o da çok uğraştırmakta.
macrolar ile veya bildiğini bir başka fonksiyon ile bu mümkün müdür

konu ile ilgili yardımlarınız için şimdiden teşekkür ederim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Değiştirilecek veri A1 de olduğu varsayılarak.
B1 hücresine aşağıdaki formülü yazın:cool:
Ve aşağı doğru çekerek kopyalayın.:cool:
=PARÇAAL(A1;BUL("(";A1)+1;(BUL(")";A1)-1)-(BUL("(";A1)))
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Örnek dosyayı inceleyiniz.:cool:
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Makro ilede aşağıdaki gibi olur.
A sütunun da ayıklama yapılıyor.Ve tekrar ayni hücre üstüne yazıyor.!!
Boş bir modüle kopyalayıp deneyiniz.
Kullanmadan önce çalışmanızın bir yedeğiniz almanızda her zaman fayda vardır.
Kolay gelsin.:cool:
Kod:
Sub ayir()
Dim sonsat As Long, i As Long, ilk As Byte, son As Byte, uzunluk As Byte
sonsat = Sheets("Sayfa1").Cells(65536, "A").End(xlUp).Row
For i = 1 To sonsat
On Error GoTo hata
    ilk = WorksheetFunction.Find("(", Cells(i, "A").Value) + 1
    son = WorksheetFunction.Find(")", Cells(i, "A").Value)
    uzunluk = son - ilk
    sonuc = Mid(Cells(i, "A").Value, ilk, uzunluk)
    Cells(i, "A").Value = sonuc
hata:
Next
MsgBox "İşlem Tamam"
End Sub
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Metni sütunlara dönüştür ile de parantez içindeki bilgileri ayıklayabilirsiniz.
 
Katılım
2 Ekim 2006
Mesajlar
35
Excel Vers. ve Dili
excel 2003
arkadaşlar verdiğiniz çözümler için teşekkür ederim.
Yalnız Sezar'ın kullandığı formül biraz karışık geldi formül hakkında
küçük bir açıklama yapmak mümkün mü acaba ?
=PARÇAAL(A1;BUL("(";A1)+1;(BUL(")";A1)-1)-(BUL("(";A1)))

teşekkür ederim.
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
=PARÇAAL(metin;başlangıç sayısı;sayı karakterler)

A1 = Ahmet olduğunu varsayarsak;

=parçaal(a1;2;3) dersek, Yani A1 hücresinden 2. karakterden başlayarak 3 karakter al anlamındadır. sonuç hme olur

"telekom (25 h 2456) "

=PARÇAAL(A1;BUL("(";A1)+1;(BUL(")";A1)-1)-(BUL("(";A1)))

A1 metin yani telekom (25 h 2456)

BUL("(";A1)+1 Başlangıç sayısı ,yani "(" işaretini bul. Sizin örneğinizde 10 çıkar.

(BUL(")";A1)-1)-(BUL("(";A1)) sayı karakter, yani "(" işareti ile ")" işareti arasındaki karakter sayısını bul. Sizin örneğinizde bu 9 çıkar.

BUL fonksiyonlarını istediğiniz karakteri bulmak için kullanıyoruz.
Fonksiyondaki +1 ile -1 ifadelerini kullanmazsak sonuç şöyle olur : (25 h 2456)

Sonuç olarak fonksiyon şu hale gelir.
=Parçaal(a1;10;9)
Yani A1 hücresindeki metinin 10.karakterinde itibaren 9 karakter al. Onun sonucuda sizin istediğiniz 25 h 2456 dır.

Anlatma yeteneğim fazla yoktur. Umarım açıklayıcı olmuştur.
Konu ile ilgili ayrıca Excel Yardım menüsünü kullanabilirsiniz.
 
Katılım
2 Ekim 2006
Mesajlar
35
Excel Vers. ve Dili
excel 2003
teşekkür ederim gayet açıklayıcı oldu
yardımların için teşekkü ederim.
 
Üst