Excel Otomatik Doldurma

Katılım
16 Ağustos 2023
Mesajlar
3
Excel Vers. ve Dili
2021, Türkçe
Merhaba,

Aşağıdaki verilerin başındaki haneyi "L80" olan kısımları tüm geri kalan tüm veriler aynı olacak şekilde "L81,L82,L83,...,L150" ye kadar götürmek istiyorum. Kolay yolunu bilmediğimden aşağıda örneği bulunan veriyi ayrı bir excelde toplayıp replace all ile "L01 den L80"e kadar yaptım ancak baya zamanımı aldı daha kolay bir yolu var mıdır?

L8001-01

L8001-02

L8001-03

L8001-04

L8001-05

L8002-01

L8002-02

L8002-03

L8002-04

L8002-05

L8002-06

L8002-07

L8002-08

L8002-09

L8003-01

L8003-02

L8003-03

L8003-04

L8003-05

L8003-06

L8003-07

L8003-08

L8003-09

 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,370
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,.
L8001 den 5 sıra var
L8002 den 9 sıra var, sistem ne?
 
Katılım
16 Ağustos 2023
Mesajlar
3
Excel Vers. ve Dili
2021, Türkçe
Merhaba,

Çalıştığım yerdeki raf sistemi bu şekilde ilerliyor tepsi şeklinde düşünürseniz ilk sırada 5 raf var 2.sırada ve 3.sırada 9 raf var bu verilerde rafları belirtiyor.
L80 rafındaki sıralama bu şekilde ve diğer raflarda aynı yöntemle ilerliyor sadece aynı verinin başındaki L80 hanesini ilerletmek istiyorum.
 

Korhan Ayhan

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

Elle DEĞİŞTİR yapmamak için basit olarak aşağıdaki formülü bu listeyi oluşturmak istediğiniz ilk hücreye uygulayıp alta doğru sürükleyiniz.

C++:
="L"&METNEÇEVİR(YUKARIYUVARLA(SATIR(A1)/9;0);"0000")&"-"&METNEÇEVİR(MOD(SATIR(A1)-1;9)+1;"00")
Sonrasında listeyi kopyala-değer yapıştır yaparak değere çevirin. Sonrasında 5 raf olması gereken sıraları elle temizleyin. Sanırım bu işlem daha az zamanınızı alacaktır.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Makrolu Alternatif;
Kendi geliştirdiğim numarator sistemi ile istediğiniz koşullarda artan numaralar oluşturabilirsiniz.
Sistem text işlem üzerinden ilerlediği için numaralamada karakterlerde kullanabilirsiniz.


C#:
'Numaratör , counter, sayıcı numara arttırma, karışık numara arttırma
'Asri Akdeniz - asriakdeniz@gmail.com , www.asriakdeniz.com
Dim veri() As String
Dim adet As Long
Dim elde, bakilansayi As Boolean
Const harfler As String = "ABCDEFGĞHIİJKLMNOÖPRSŞTUÜXWVYZ"
Const sayilar As String = "0123456789"
'Const sayilar As String = "01"
Const dahildegil As String = ".-/"
 
 
Sub rafnumaralari()
   Range("D:D").Clear
   strl80 = Range("A1").Text
   str01 = Range("B1").Text
   strraf = Range("C1").Text
   satir = 1
   For i = 1 To 3
     strl80 = numarator(strl80)
     str01 = Range("B1").Text
     For i1 = 1 To 3
        str01 = numarator(str01)
        strraf = Range("C1").Text
        If str01 = "01" Then adet = 5
        If str01 = "02" Or str01 = "03" Then adet = 9
        For i2 = 1 To adet
            strraf = numarator(strraf)
            Cells(satir, "D").Value = "'" & strl80 & str01 & strraf
            satir = satir + 1
        Next i2
    Next i1
   Next i
 
End Sub

Function numarator(numara) As String
   numara = StrReverse(numara)
   adet = Len(numara)
   ReDim Preserve veri(1 To adet)
   For i = 1 To adet
      veri(i) = Mid(numara, i, 1)
   Next i
 
   elde = False
   For j = LBound(veri) To UBound(veri)
      harf = veri(j)
      If InStr(dahildegil, harf) > 0 Then GoTo son
      bakilansayi = sayimi(harf)
      If bakilansayi Then
         veri(j) = sayiarttir(harf)
      Else
         veri(j) = harfarttir(harf)
      End If
     
      If elde = False Then
        Exit For
      End If
son:
   Next j
       
   For i = LBound(veri) To UBound(veri)
      veristr = veristr & veri(i)
   Next i
 
   veristr = StrReverse(veristr)
   If Left(veristr, 1) = Left(sayilar, 1) And elde Then
      numarator = "1" & veristr
   ElseIf Left(veristr, 1) = Left(harfler, 1) And elde Then
      numarator = Left(harfler, 1) & veristr
   Else
      numarator = veristr
   End If
End Function

Function harfarttir(harfstr) As String
    mevcutsira = InStr(harfler, harfstr)
    yenisira = Mid(harfler, mevcutsira + 1, 1)
    If yenisira = "" Then
       harfarttir = Mid(harfler, 1, 1)
       elde = True
    Else
       harfarttir = yenisira
       elde = False
    End If
End Function

Function sayiarttir(sayistr) As String
    mevcutsira = InStr(sayilar, sayistr)
    yenisira = Mid(sayilar, mevcutsira + 1, 1)
    If yenisira = "" Then
       sayiarttir = Mid(sayilar, 1, 1)
       elde = True
    Else
       sayiarttir = yenisira
       elde = False
    End If
End Function


Function sayimi(sadecesayistr)
  liste = "0123456789"
  For k = 1 To Len(sadecesayistr)
    harf = Mid(sadecesayistr, k, 1)
    If InStr(liste, harf) = 0 Then
       sayimi = False
       Exit Function
    End If
  Next k
  sayimi = True
End Function
 
Katılım
16 Ağustos 2023
Mesajlar
3
Excel Vers. ve Dili
2021, Türkçe
Yardımlarınız için teşekkürler. Makrolu sistem işime yarayacaktır.
 
Üst