• DİKKAT

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

Bir satırdaki karakterler içindeki spesifik rastgele pozisyondaki metinleri çekmek

Deniz_Excel

Altın Üye
Katılım
15 Mart 2016
Mesajlar
134
Excel Vers. ve Dili
MS Excel 2016
Merhaba arkadaşlar,

Excelde satırlarda yazılan karakterler olduğunu düşünün ve bu karakterlerde bir aracın modelinin yazdığını düşünün. (model her zaman şu yapıda olucak KXX-XXXX; örn: K12-235A, K32-1A33 gibi) bu durumda ben bu ilk kolondaki satırlarda geçen modelleri metinden ayırıp diğer kolona yazdırmayı hangi formülle başarabilirim. Ulaşmak istediğim şeyi daha net anlayabilmeniz için örneklendiriyorum aşağıda. Görüldüğü üzere modeller metin içerisinde rastgele durmaktadır.

Telemetrik Sistemler K12-235A Düzeltmesi --> K12-235A
Yazılımsal K32-1A33 Kontrol çalışması --> K32-1A33

Şimdiden cevaplar için teşekkürler.
 
Dosyanız ektedir...


.
 

Ekli dosyalar

Son düzenleme:

Ekli dosyalar

Ekli dosyaya bakın...


.
Çok Teşekkürler.
Biraz daha karmaşık bir durum olursa; terim her zaman K ile değilde 1 rakamı ilede başlıyorsa burada formülü nasıl geliştirebiliriz.
12A-58FG
18Y-88G5 gibi.

tüm karakterleri ???-???? almak işe yaramayacaktır çünkü metn içerisinde "-" ile gösterilen başka ifadeler de bulunmakta
 
Pattern'da karakter sayısı tutuyorsa, çalışır...

Yani; "-" işaretinden önce 3, sonrasında 4 karakter ....

.
 
Kod:
=PARÇAAL(A2;BUL("-";YERİNEKOY(A2;" ";"-";UZUNLUK(SOLDAN(A2;BUL("-";A2;1)-1))-UZUNLUK(YERİNEKOY(SOLDAN(A2;BUL("-";A2;1)-1);" ";"")));1)+1;BUL(" ";PARÇAAL(A2;BUL("-";YERİNEKOY(A2;" ";"-";UZUNLUK(SOLDAN(A2;BUL("-";A2;1)-1))-UZUNLUK(YERİNEKOY(SOLDAN(A2;BUL("-";A2;1)-1);" ";"")));1)+1;100);1))
Yukardaki formül değişik uzunlukta aralarında tire ve iki yanında boşluk olan metin ve sayıdan oluşan dizeyi verir.
NOT: Formül A2 hücresindeki değere göre düzenlenmiştir.
 
Son düzenleme:
Ali Bey, "roman" gibi formül olmuş ama .... burada "pattern" önemli bence.

.
 
KOAH'ım var Korana yüzünden, evden çıkamıyorum, bir de KTF yazayım dedim.
Kod:
Function Tireli(huc As Range)
Tireli = Split(huc, " ")(UBound(Split(Split(huc, "-")(0), " ")))
End Function
 
Geçmiş olsun Ali Bey, kendinize dikkat edin ...

.
 
Geri
Üst