• DİKKAT

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

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

mdagistanli

Altın Üye
Katılım
5 Mayıs 2014
Mesajlar
126
Excel Vers. ve Dili
Excel Pro Plus 2019 TR
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

  • parca-no-ayikla.jpg
    parca-no-ayikla.jpg
    51.1 KB · Görüntüleme: 12
  • parca-no-ayikla.xlsx
    parca-no-ayikla.xlsx
    10.5 KB · Görüntüleme: 16
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;"")
 
Hayır örnek olması için gösterdim. Sadece A sütunu var.
 
B sütunu için de yukardaki makro var ya, onu kullanmıyor musunuz?
 
B sütununu fonksiyon ile alabiliyorum. KTF çözümü gelene kadar dediğiniz yöntemle iki aşamada kodları alabilirim.
Teşekkür ederim.
 
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);"")
 
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.
 
İ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

  • marka-kodunu-parca-olarak-al.jpg
    marka-kodunu-parca-olarak-al.jpg
    34.8 KB · Görüntüleme: 6
Şö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
 
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)
 
Şö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
 
Formülle alternatif ekli dosyadadır...

.
 

Ekli dosyalar

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)
 
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?
 
"String/Metin" veya "Boolean/Mantıksal" tipte bir veriyi "Numeric" tipe dönüştürmeye yarar...

.
 
İnceleyiniz.

 
Geri
Üst