Plaka Ayırma

Katılım
5 Ocak 2016
Mesajlar
129
Excel Vers. ve Dili
office 2010
Merhaba,

H5 den başlayarak aşağıya doğru araç plakları var. bu araç plakalarının arasında boşluk yok ve ortadaki harf kısımlarını alıp aynı seriden kaç tane olduğunu hesaplamam gerekiyor.
örn:
34S34
34AB879
34BRE607

Teşekkürler
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
A1'de plaka varsa:

İl kodu için B1 hücresine:

=SOLDAN(A1;2)

Harf grubu için C1 hücresine:

=YERİNEKOY(SAĞDAN(A1;UZUNLUK(A1)-2);D1;"")

Sıra no için D1 hücresine:

=ARA(9,99999999999999E+307;--SAĞDAN(A1;SATIR($1:$1000)))

Eğer sadece harf grubunu almak istiyorsanız B1 hücresine:

=YERİNEKOY(SAĞDAN(A3;UZUNLUK(A3)-2);ARA(9,99999999999999E+307;--SAĞDAN(A3;SATIR($1:$1000)));"")
 
Katılım
5 Ocak 2016
Mesajlar
129
Excel Vers. ve Dili
office 2010
Yusuf Bey,

Teşekkürler, rica etsem formülün açıklamasını ayrıştırarak yapar mısınız. harften sonra rakam kısmı 0 ile başlıyorsa harfin sonuna 0 koyuyor

=YERİNEKOY(SAĞDAN(A3;UZUNLUK(A3)-2);ARA(9,99999999999999E+307;--SAĞDAN(A3;SATIR($1:$1000)));"")
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
O sorun nasıl çözülür bulamadım, şöyle bir formül yazdım:

=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(A1;0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"")
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Aşağıdaki kodu kişisel makro dosyasına kayıt ederseniz.
Tüm dosyalarınızda kullanabilirsiniz.

Kullanımı:
=PERSONAL.XLSB!PLAKAAYIR(C3)

214979

Kod:
Public Function PLAKAAYIR(plakatxt As Variant) As String
  liste = "0123456789"
  For k = 1 To Len(plakatxt)
    harf = Mid(plakatxt, k, 1)
    If InStr(liste, harf) <= 0 Then
       plaka = plaka & harf
    End If
  Next k
  PLAKAAYIR = plaka
End Function
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,354
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Alternatif olsun.

Plaka A1 de olduğu varsayılarak.
B1 : İl Kodu
Kod:
=SOLDAN(A1;2)
C1 : Harf Grubu
Kod:
=YERİNEKOY(YERİNEKOY(A1;B1;"");D1;"")
D1: Rakam Grubu, Dizi Formüldür,Formülü Ctrl+Shift+Enter ile bitirmek gerek.
c1 formülünden önce D1 deki formülü yazmak gerek.

Kod:
=PARÇAAL(YERİNEKOY(A1;B1;"");KAÇINCI(0;(EHATALIYSA(PARÇAAL(YERİNEKOY(A1;B1;"");SATIR(DOLAYLI("1:"&UZUNLUK(YERİNEKOY(A1;B1;""))));1)*1)*1);0);UZUNLUK(YERİNEKOY(A1;B1;""))-TOPLA((EHATALIYSA(PARÇAAL(YERİNEKOY(A1;B1;"");SATIR (DOLAYLI("1:" & UZUNLUK(YERİNEKOY(A1;B1;""))));1)*1)*1)))
 

Korhan Ayhan

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

Yeni versiyonlar için geçerlidir. (Ofis 2019 - Ofis 365)

DİZİ formüldür. (CTRL+SHIFT+ENTER)

C++:
=METİNBİRLEŞTİR(;;EĞERHATA(EĞER(HATA.TİPİ(0+PARÇAAL(H5;SATIR(DOLAYLI("A1:A"&UZUNLUK(H5)));1)=3);PARÇAAL(H5;SATIR(DOLAYLI("A1:A"&UZUNLUK(H5)));1);"");""))
 
Katılım
18 Ocak 2019
Mesajlar
234
Excel Vers. ve Dili
Office 2013
Merhaba @serdar.gul
Denermisiniz.

il kodu için
Kod:
=SOLDAN(A1;2)
harfler için
Kod:
=PARÇAAL(SOLDAN(A1;MİN(BUL({1\2\3\4\5\6\7\8\9\0};PARÇAAL(A1;3;10)&"0123456789"))+1);3;4)
sondaki sayılar için
Kod:
=PARÇAAL(PARÇAAL(A1;3;9);MİN(BUL({1\2\3\4\5\6\7\8\9\0};PARÇAAL(A1;3;8)&"0123456789"));4)
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,786
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
RegExp ile yazılmış KTF

Bu sitede bununla ilgili bir konu vardı ama bulamadım.


Kod:
Function asayıayır(ByVal WhichString As String) As Variant

With CreateObject("VBScript.RegExp")
.Pattern = "([0-9]{2})([A-Z]{1,3})([0-9]{2,4})"
.Global = True
asayıayır = .Replace(WhichString, "$1 $2 $3")
End With

End Function
Function bsayıayır(ByVal WhichString As String) As Variant

With CreateObject("VBScript.RegExp")
.Pattern = "([0-9])"
.Global = True
bsayıayır = .Replace(WhichString, "")
End With

End Function
 

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
"Regular Expressions" ile alternatif:


Kod:
Function SplitPlaka(myRange As Range, i As Integer)
'   Haluk - 05/03/2020
'   sa4truss@gmail.com

    Set regExp = CreateObject("VBScript.RegExp")
    
    regExp.IgnoreCase = True
    regExp.Global = True
    
    regExp.Pattern = "(\d{2})([A-Z]{1,3})(\d{2,5})"
    If regExp.Test(myRange.Text) Then
        Set objMatches = regExp.Execute(myRange.Text)
        SplitPlaka = objMatches.Item(0).Submatches(i)
    End If
    
    Set objMatches = Nothing
    Set regExp = Nothing
End Function

Kullanımı şöyle;

Plaka verileri örneğin A1 hücresindeyse;

-İl kodu için B1 hücresine;

Kod:
=SplitPlaka(A1;0)

-Harf grubu için C1 hücresine;

Kod:
=SplitPlaka(A1;1)

-Sondaki nümerik veri için D1 hücresine;

Kod:
=SplitPlaka(A1;2)

.
 
Son düzenleme:
Katılım
5 Ocak 2016
Mesajlar
129
Excel Vers. ve Dili
office 2010
ilginize teşekkür ederim. hepsini deniyeceğim.
 
Üst