Soru Sütunda Enküçük Enbüyük Sayı

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Değerli üstadlar; Aşağıdaki kod ile sütundaki en küçük büyük sayıyı buluyorum ancak sayılarımın kurgusu;

26101-01
28305-10
32451-09

Şeklinde ve bu fonksiyon ile bulduramıyorum. Nasıl çözüm sağlamalıyım?

Kod:
WorksheetFunction.Small(Range("A:A"), 1)

WorksheetFunction.Large(Range("A:A"), 1)
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Verileriniz sayı olmadığı için sonuca ulaşamadınız.
28305-10 olan değeri 2830510 bu şekilde mi görmesi gerekiyor.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Örnekteki gibi soldan 5 hane olan kısımlar için aşağıdaki örnek kod bloğunu kullanabilirsiniz.
B1 hücresine küçük değeri, B2 hücresine büyük değeri yazar.
Kod:
Option Base 1
Sub ornek()
Dim dizi() As Integer
son = Range("A" & Rows.Count).End(xlUp).Row

ReDim dizi(son)
y = 1
For x = 1 To son
    dizi(y) = Left(Cells(x, "A"), 5)
    y = y + 1
Next x

buyuk = WorksheetFunction.Large(dizi, 1)
kucuk = WorksheetFunction.Small(dizi, 1)

Range("B1") = kucuk
Range("B2") = buyuk
Erase dizi
End Sub
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Malesef olmadı

Option Base 1 Sub ornek() Dim dizi() As Integer son = Range("A" & Rows.Count).End(xlUp).Row ReDim dizi(son) y = 1 For x = 1 To son dizi(y) = Left(Cells(x, "A"), 5) y = y + 1 Next x buyuk = WorksheetFunction.Large(dizi, 1) kucuk = WorksheetFunction.Small(dizi, 1) Range("B1") = kucuk Range("B2") = buyuk Erase dizi End Sub
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
@Ömer hocam sayı şeklinde olmalı. Yani hedefim tire de olsa ilk 5 rakama bakarak bulması

Küçük olan C1 hücresine
Büyük olan C2 hücresine yazılacak
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Sayın @faye_efsane ‘nin verdiği kodlarda;

Kod:
dizi(y) = Left(Cells(x, "A"), 5) yerine dizi(y) = Replace(Cells(x, "A"), "-", "")
Dim dizi() As Integer yerine Dim dizi() As Double
Yazarak deneyin.
 

Korhan Ayhan

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

DİZİ formülleridir.

Küçük;
C++:
=MİN(--SOLDAN($A$1:$A$3;5))
Büyük;
C++:
=MAK(--SOLDAN($A$1:$A$3;5))
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
@Ömer hocam düzeltmeyi yaptım çalışıyor ancak sütunda boş satırlar olması durumunda hata veriyor. Birde "-" den sonraki kısmı atabiliriz de.
Kod:
Option Base 1
Sub ornek()
Dim dizi() As Double
son = Range("A" & Rows.Count).End(xlUp).Row

ReDim dizi(son)
y = 1
For x = 1 To son
    dizi(y) = Replace(Cells(x, "A"), "-", "")
    y = y + 1
Next x

buyuk = WorksheetFunction.Large(dizi, 1)
kucuk = WorksheetFunction.Small(dizi, 1)

Range("B1") = kucuk
Range("B2") = buyuk
Erase dizi
End Sub
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
@Korhan Ayhan hocam normal hücreye yazarak mı kullanılıyor? Algılayamadım. Derdim sütundaki en küçük ve en büyük sayılar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,744
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz zaten hücre adresi vermiştiniz. O hücrelere uygulayacaksınız.
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Hangi hücrenin karşısına yazsam o sayıyı veriyor. Amacıma ulaşamıyorum yani :) Bir yeri mi yanlış yapıyorum? @Korhan Ayhan
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,744
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
DİZİ formüle çevirdiniz mi?

C1 ve C2 hücrelerine uygulayacaksınız.
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Dizi Formül ilk kez kullandım Korhan Hocam bildiğim birşey değildi internetten öğrendim. Ancak A sütunum dinamik olacak. Bu nedenle makro ile çözüm olsa sanırım daha iyi olacak. Formülünüz iş yapıyor onda sorun yok
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,744
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ama sorunuz FONKSİYONLAR bölümünde! O zaman başlığı taşımak lazım.
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Olur Korhan Hocam kusura bakmayın. Elimdeki çıkarıma uygun olan yer olarak düşünmüştüm.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Yani hedefim tire de olsa ilk 5 rakama bakarak bulması
çalışıyor ancak sütunda boş satırlar olması durumunda hata veriyor. Birde "-" den sonraki kısmı atabiliriz de.
Merhaba, bu kodları kullanabilirsiniz. Denedim çalışıyor.
Kod:
Option Base 1
Sub ornek()
Dim dizi() As Integer
son = Range("A" & Rows.Count).End(xlUp).Row
dolusatir = WorksheetFunction.CountA(Range(Cells(1, "A"), Cells(son, "A")))

ReDim dizi(dolusatir)
y = 1
For x = 1 To son
If Cells(x, "A") = "" Then GoTo atla
    dizi(y) = Left(Cells(x, "A"), 5)
    y = y + 1
atla:
Next x

buyuk = WorksheetFunction.Large(dizi, 1)
kucuk = WorksheetFunction.Small(dizi, 1)

Range("C1") = kucuk
Range("C2") = buyuk
Erase dizi
End Sub
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Teşekkürler @faye_efsane üstadım ancak Malesef aşağıdaki satırda hata alıyorum
dizi(y) = Left(Cells(x, "A"), 5)
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Hata veren dosyayı ve hata görüntüsünü ekler misiniz?
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Enkucuk-Enbuyuk.png

Buyrun
 

Ekli dosyalar

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Qverflow hatası taşma anlamına geliyor.
A sütunundaki sayılar Integer tanımlamasındaki aralıktan büyük olduğu için bu hatayı veriyor.
Dim dizi() As Integer satırını Dim dizi() As Long ya da Dim dizi() As Double olarak değiştiriniz.
 
Üst