[]
[Excel] VBA ile minimum/maksimum buldurma
Merhaba,
Elimdeki datadan iki boyutlu bir array olusturuyorum. Daha sonra bu array'in bir kolonunda duruma gore minimum ya da maksimum degeri bulmam gerekiyor. Bu is icin kullandigim algoritma ve ona karsilik gelen kod su sekilde.
- aranilacak sutundaki ilk degeri min ya da max olarak tanimla
- sutundaki tum elemanlari bir donguyle ilk atadigin degerle karsilastir
- duruma gore ilk atanandan buyuk ya da kucuk varsa o degeri degistir
default_max = Sheets("s").Range("B" & initial_value).Value 'ilk deger
For i = 1 To array_counter - 1 'array'deki tum elemanlar icin
If search_array(1, i) > default_max Then 'arraydeki deger daha buyukse
default_max = search_array(1, i) 'yeni deger olarak ata
End If
Next i
Yalniz boyle cok verimli calisacagini zannetmiyorum. Min/Max bulmak icin en dogru yontem bu mudur? Ya da Excel'de tanimli bir fonksiyon var mi gosterdigim iki boyutlu array'de bu isi yapabilecek?
Simdiden tesekkurler.
Elimdeki datadan iki boyutlu bir array olusturuyorum. Daha sonra bu array'in bir kolonunda duruma gore minimum ya da maksimum degeri bulmam gerekiyor. Bu is icin kullandigim algoritma ve ona karsilik gelen kod su sekilde.
- aranilacak sutundaki ilk degeri min ya da max olarak tanimla
- sutundaki tum elemanlari bir donguyle ilk atadigin degerle karsilastir
- duruma gore ilk atanandan buyuk ya da kucuk varsa o degeri degistir
default_max = Sheets("s").Range("B" & initial_value).Value 'ilk deger
For i = 1 To array_counter - 1 'array'deki tum elemanlar icin
If search_array(1, i) > default_max Then 'arraydeki deger daha buyukse
default_max = search_array(1, i) 'yeni deger olarak ata
End If
Next i
Yalniz boyle cok verimli calisacagini zannetmiyorum. Min/Max bulmak icin en dogru yontem bu mudur? Ya da Excel'de tanimli bir fonksiyon var mi gosterdigim iki boyutlu array'de bu isi yapabilecek?
Simdiden tesekkurler.
Worksheetfunction.max ve min kullanabilirsin eğer değerler excel sayfasında ise.
- cakabo (13.11.12 10:47:48)
Tesekkurler yanit icin. Degerler sayfada degil ve array iki boyutlu. Bana sadece ilk kolondaki degerler arasinda karsilastirma gerekiyor.
- dahicocuk (13.11.12 11:02:52)
Array'in ilk kolonundaki değerleri belli bir sayfaya geçici olarak taşıyıp formülleri kullanabilirsin. Onun dışında array üzerinde default tanımlı bir max fonksiyonu yok bildiğim kadarıyla.
- cakabo (13.11.12 11:44:00)
1