Sağdaki harfleri sayıya rastlayana kadar parça al

mdagistanli

Altın Üye
Katılım
5 Mayıs 2014
Mesajlar
106
Excel Vers. ve Dili
Excel Pro Plus 2019 TR
Altın Üyelik Bitiş Tarihi
12-02-2025
Merhaba.
Görüntüdeki dosyanın A sütununda yedek parça numarası var. Sonraki harfler marka kodunu ifade ediyor. Orjinal parça numarasına marka kodu ekleyerek sisteme kaydediyoruz çünkü aynı parçanın farklı markaları var. Amerika, İtalya, İngiltere gibi.
B ve C sütununda olduğu gibi bazen asıl parça numarasını ve marka kodunu ayırmam gerekiyor.

Marka kodunu silmeyle ilgili destek aldım, uyguladım. VB bilgim sıfır. Şimdi marka kodunu sütuna ayırmak istiyorum.

Parça numalararı mutlaka sayı ile bitiyor ve bütün marka kodlarımız harflerden oluşuyor.
Yani sağdaki harfleri, sayıya rastlayana kadar parça olarak almak istiyorum.

Marka kodunu silen fonksiyon şöyle;

Kod:
Option Explicit

Public Function MARKAKODSİL(metin As String) As String
Dim uzunluk, i As Integer

uzunluk = Len(metin)

For i = uzunluk To 1 Step -1

If Not IsNumeric(Right(metin, 1)) Then
    metin = Left(metin, Len(metin) - 1)
Else:
MARKAKODSİL = metin
Exit For
End If

Next

End Function
Desteğinizi rica ederim.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sanırım elinizde A ve B sütunu var ve C sütununu elde etmeye çalışıyorsunuz. Bunun için C2 hücresinde aşağıdaki formülü kullanabilirsiniz:

=YERİNEKOY(A2;B2;"")
 

mdagistanli

Altın Üye
Katılım
5 Mayıs 2014
Mesajlar
106
Excel Vers. ve Dili
Excel Pro Plus 2019 TR
Altın Üyelik Bitiş Tarihi
12-02-2025
Hayır örnek olması için gösterdim. Sadece A sütunu var.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
B sütunu için de yukardaki makro var ya, onu kullanmıyor musunuz?
 

mdagistanli

Altın Üye
Katılım
5 Mayıs 2014
Mesajlar
106
Excel Vers. ve Dili
Excel Pro Plus 2019 TR
Altın Üyelik Bitiş Tarihi
12-02-2025
B sütununu fonksiyon ile alabiliyorum. KTF çözümü gelene kadar dediğiniz yöntemle iki aşamada kodları alabilirim.
Teşekkür ederim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Nasıl bir çözüm istiyorsunuz ki? KTF benim bildiğim kullanıcı tanımlı fonksiyondur ve yazıldığı hücrede çalışır. Aynı KTF ile hem B hem de C sütununu mu elde etmek istiyorsunuz?

B sütunu olmadan doğrudan C sütununu elde etmek için aşağıdaki formülü kullanabilirsiniz:

Kod:
=YERİNEKOY(A2;MARKAKODSİL(A2);"")
 

mdagistanli

Altın Üye
Katılım
5 Mayıs 2014
Mesajlar
106
Excel Vers. ve Dili
Excel Pro Plus 2019 TR
Altın Üyelik Bitiş Tarihi
12-02-2025
Bu yöntem de güzel teşekkür ederim. MARKAKODSİL benzeri MARKAKODAL kullanmak istiyorum. Dediğiniz gibi yazıldığı hücrede çalışıyor. YERİNEKOY'A gerek kalmadan, KTF olmalı ki tek formül ile ilave parametre olmaran hızlıca işlem yapayım.
 

mdagistanli

Altın Üye
Katılım
5 Mayıs 2014
Mesajlar
106
Excel Vers. ve Dili
Excel Pro Plus 2019 TR
Altın Üyelik Bitiş Tarihi
12-02-2025
İlk görseli ve bahsettiğim KTF'yi yok sayalım. Elimde A sütunu var, bu göselde olduğu gibi B sütununu formülle veya makro ile getirmek istiyorum.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Şöyle demek istiyorsunuz galiba :oops:

PHP:
Option Explicit

Public Function MARKAKODAL(metin As String) As String
Dim uzunluk, i As Integer

uzunluk = Len(metin)

For i = uzunluk To 1 Step -1

    If Mid(metin, i, 1) = "1" Or Mid(metin, i, 1) = "2" Or Mid(metin, i, 1) = "3" Or Mid(metin, i, 1) = "4" Or _
        Mid(metin, i, 1) = "5" Or Mid(metin, i, 1) = "6" Or Mid(metin, i, 1) = "7" Or Mid(metin, i, 1) = "8" Or _
        Mid(metin, i, 1) = "9" Or Mid(metin, i, 1) = "0" Then
            MARKAKODAL = Right(metin, uzunluk - i)
            Exit For
    End If
Next

End Function
 

mdagistanli

Altın Üye
Katılım
5 Mayıs 2014
Mesajlar
106
Excel Vers. ve Dili
Excel Pro Plus 2019 TR
Altın Üyelik Bitiş Tarihi
12-02-2025
Evet usta tam olarak buydu. Teşekkür ederim. :)

Diğer KTF'yi eklenti olarak eklemiştim. Bunu da Module2 olarak ilave ettim. Çok iyi oldu. (y)
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Şöyle demek istiyorsunuz galiba :oops:

PHP:
Option Explicit

Public Function MARKAKODAL(metin As String) As String
Dim uzunluk, i As Integer

uzunluk = Len(metin)

For i = uzunluk To 1 Step -1

    If Mid(metin, i, 1) = "1" Or Mid(metin, i, 1) = "2" Or Mid(metin, i, 1) = "3" Or Mid(metin, i, 1) = "4" Or _
        Mid(metin, i, 1) = "5" Or Mid(metin, i, 1) = "6" Or Mid(metin, i, 1) = "7" Or Mid(metin, i, 1) = "8" Or _
        Mid(metin, i, 1) = "9" Or Mid(metin, i, 1) = "0" Then
            MARKAKODAL = Right(metin, uzunluk - i)
            Exit For
    End If
Next

End Function
Teşekkürler üstad
 
Katılım
28 Nisan 2010
Mesajlar
182
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
15/10/2022
Formülle Bulunamaz mı?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Formülle alternatif ekli dosyadadır...

.
 

Ekli dosyalar

Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
Böyle bir şey mi yapmaya çalıştığınız?
 

Ekli dosyalar

Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
Sadece A sütununu kullanarak, B ve C sütunları oluşturulacak... Yani, elinizde sadece A sütunu var.

.
Evet ona dikkat etmeden direk örnek dosya üzerinden yapmıştım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,547
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

DİZİ formül;

B2;
C++:
=SOLDAN(A2;MAK(ESAYIYSA(--PARÇAAL(A2;SATIR($A$1:$A$255);1))*SATIR($A$1:$A$255)))
C2;
C++:
=PARÇAAL(A2;MAK(ESAYIYSA(--PARÇAAL(A2;SATIR($A$1:$A$255);1))*SATIR($A$1:$A$255))+1;10)
 
Katılım
27 Ocak 2010
Mesajlar
230
Excel Vers. ve Dili
Türkçe Microsoft Office Professional Plus 2019
Altın Üyelik Bitiş Tarihi
05-10-2020
C++:
=SOLDAN(A2;MAK(ESAYIYSA(--PARÇAAL(A2;SATIR($A$1:$A$255);1))*SATIR($A$1:$A$255)))
Burada yazılan formülleri deneyerek kendimi geliştirmeye çalışıyorum.

Üstteki formülde PARÇAAL'ın hemen önündeki iki adet tire(--)nin exceldeki ismi nedir? (Bu ismi öğreneyim ki buna göre araştırıp youtubeden video vb. dinleyebileyim...

--PARÇAAL

bu tireler hep böyle çift mi kullanılıyor tek kullanılır mı vb. kısa bir bilgi verebilir misiniz?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
"String/Metin" veya "Boolean/Mantıksal" tipte bir veriyi "Numeric" tipe dönüştürmeye yarar...

.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,547
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İnceleyiniz.

 
Üst