Metinden istenen bölümü almak

Katılım
19 Şubat 2022
Mesajlar
21
Excel Vers. ve Dili
360, türkçe
Merhabalar

Soldaki benim verim. Ortada ise en sağdaki formüle göre bulduğum.

Sorunum şu. Ben ortada bulduğum verimin sağındaki 2 adet tire işaretimin olmamasını istiyorum.

Yani verim 1To1406 rpt1 şeklinde gelmeli.

500-3488-4360-1To1406 rpt1-10.000000-197

1To1406 rpt1-10.000000-197

SAĞDAN(N3598;UZUNLUK(N3598)-BUL("*";YERİNEKOY(N3598;"-";"*";3)))

 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bu mudur?
=YERİNEKOY(SAĞDAN(N3598;UZUNLUK(N3598)-BUL("*";YERİNEKOY(N3598;"-";"*";3)));"-";" ")
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sonuçta görmek istediğiniz veriyi manuel olarak yazarmısın
 
Katılım
19 Şubat 2022
Mesajlar
21
Excel Vers. ve Dili
360, türkçe

500-3488-4360-1To1406 rpt1-10.000000-197

1To1406 rpt1-10.000000-197


sağdaki gönderdiğim fonksiyona göre bulduğum ve benim istediğim sadece bu: 1To1406 rpt1
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,122
Excel Vers. ve Dili
Microsoft Office 2019 English
=PARÇAAL(N3598;15;14)

Şu işinizi görmez mi?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Yani her zaman 3 ve 4. "-" işareti arasındaki veri mi alınacak, yoksa yeri değişebiliyor mu?

Verinin yeri değişiyorsa kıstas nedir ? Örneğin herzaman veri "To" ve/veya "rpt" metinlerini mi içerecektir?

.
 
Katılım
19 Şubat 2022
Mesajlar
21
Excel Vers. ve Dili
360, türkçe
500-3488-4360-1To1406 rpt1-10.000000-197

her zaman sağdan 2inci tire ve sonrasındaki 3üncü tire ile arasındaki veri. buradaki örneğe göre 1To1406 rpt1 gibi.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
O zaman "Libre Office" de aşağıdaki gibi REGEX fonksiyonu kullanarak yapılabilir;




.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
MS Excel'de daha uzun bir formülle şöyle olabilir;




.
 
Katılım
19 Şubat 2022
Mesajlar
21
Excel Vers. ve Dili
360, türkçe

800-1866-4187-OB1433785-TOP-2.000000-130

OB1433785
METNİN EN SAĞINDAKİ 2 ADET TİRE VE İÇERİSİNDEKİ BİLGİLER HARİÇ GELMELİ. SANKİ BU FONKSİYON DAHA VERİMLİ OLDU.

 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
İstediğiniz bu mu?




.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Deneyiniz..

Kod:
'Örnek
'=WMid1(A1;4;;"-")
'Alıntı
Function WMid1(Source As String, Optional Position As Integer, Optional WordCount As Integer, Optional Separator As String)
Dim arr() As String
Dim xCount As Integer
Dim wCount As Integer
Dim wFirst As Integer
Dim wLast As Integer
If Position = 0 Then Position = 1
If WordCount = 0 Then WordCount = 1
If Separator = "" Then Separator = " "
arr = VBA.Split(Trim(Source), Separator)
xCount = UBound(arr) + 1
If Position < 1 Then
wFirst = Application.Max(xCount + Position - WordCount + 1, 0)
wLast = xCount + Position
Else
wFirst = Position - 1
wLast = Application.Min(xCount - 1, Position + WordCount - 2)
End If
If xCount < 2 Or Abs(Position) > xCount Then
WMid1 = ""
Else
WMid1 = arr(wFirst)
For wCount = wFirst + 1 To wLast
WMid1 = WMid1 & Separator & arr(wCount)
Next
End If
WMid1 = Trim(WMid1)
End Function
 
Üst