Gradasyon Oluşturma

bordo6181

Altın Üye
Katılım
15 Nisan 2020
Mesajlar
77
Excel Vers. ve Dili
2016 - Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2025
Merhaba bir beton karışım excelimiz var

Burada Seçilen Karışım Yüzdelerine değer verilerek maksimum - minimum değerler içinde kalarak ve İdeal karışıma yakın bir karışım elde edilmeye çalışıyoruz

Acaba bunu makro vb. çalışmalarla otomatik hale getirme şansımız var mı
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Konuyu siz biliyorsunuz ama burdaki çoğu kişi bu konuda hiçbir fikre sahip değildir. Yani karışımdan kastınız nedir, nereler değiştiriliyor, nasıl yapılıyor hiç bilmiyoruz. Ancak işin mantığı anlaşılırsa muhtemelen istediğiniz çözüme ulaşabilirsiniz. Bunun için dosyanız üzerinde somut örneklerle nasıl bir işlem yapılacağını anlatırsanız iyi olur.
 

bordo6181

Altın Üye
Katılım
15 Nisan 2020
Mesajlar
77
Excel Vers. ve Dili
2016 - Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2025
Excelin Üstünde yapmayı beceremedim ama yazarak anlatmaya çalışacağım.

1. Husus bu toplam kesinlikle %100 olmak zorunda

221068

2. Husus bu değerler bize deney sonucu olarak geliyor. Bir nevi her örnek için sabit değerler diyebiliriz.

221069

3. Bizim asıl üzerinde oynadığımız değerler bu kısım oluyor. Deneme yanılma yöntemi ile ideal gradasyona uygun bir grafik elde edebilmek için değerler veriyoruz.

221070

4. Bizim verdiğimiz karışım oranlarına göre bu karışım yüzdesi değişiyor. Aslında biraz havuz problemi gibi

221071

5. Elde etmek istediğimiz karışım bu , standartta maksimum ve minimum sınırları var onların altına inemezsin diyor. Altındaki grafikte bunu görsel olarak göstermek için var.

221072

Yani karışım yüzdelerini değiştirererek elde edilen karışımı ideal karışıma yanaştırmak istiyoruz.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki makroyu deneyiniz. İşlem süresi uzun olabilir:

PHP:
Sub elek()
Dim basla, bitir, sure
Dim i As Long
basla = Timer
Application.ScreenUpdating = False
Application.EnableEvents = False
10:
[J3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100), 5)
[K3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100 - [J3]), 5)
[L3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100 - [J3] - [K3]), 5)
[M3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100 - [J3] - [L3]), 5)
    
If WorksheetFunction.Sum([J3:M3]) <> 100 Then GoTo 10
For pacal = 6 To 17
    If Cells(pacal, "G") < Cells(pacal, "D") Or Cells(pacal, "G") > Cells(pacal, "F") Then GoTo 10
Next

Application.EnableEvents = True
Application.ScreenUpdating = True
bitir = Timer
sure = Format(bitir - basla, "Fixed") & " sn."
MsgBox "İşlem tamamlandı." & Chr(10) & "İşlem süresi :" & Chr(10) & Chr(10) & sure
End Sub
 

bordo6181

Altın Üye
Katılım
15 Nisan 2020
Mesajlar
77
Excel Vers. ve Dili
2016 - Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2025
Emeğinize sağlık Yusuf bey

Bilgim olmadığından Makronun mantığını anlamadım ama sonuç olarak uygun bir gradasyon çıkaramadı. Sanırım her düğmeye bastığımda yeni gradasyon deniyor.

Biz deneme yanılmayı şu şekilde yapıyoruz genelde belki bu bilgi biraz daha bizi doğruya yöneltebilir.

Bu her örnekte %0 geçen seviyesi değişse de aslında 0-5 malzeme grubu diye belirttiğimiz yer
221132

Oranını bularak başlıyoruz işe Kırma kum yaklaşık şu olabilir diyoruz.

Sonra Kırma kum bulduk ve artık sabitse Orta malzemenin etkilediği kısımdan Ortayı buluyoruz.

221133

Toplamı 100 olacağından kalan kısmıda Kaba'ya yazıyoruz.

En son bulduğumuz değerlere göre Grafiğe bakarak

Mesela bu örnekte en ideal karışımı bu şekilde buldum ben yaptığım hesaplamaları da Excele ekledim.
 

Ekli dosyalar

bordo6181

Altın Üye
Katılım
15 Nisan 2020
Mesajlar
77
Excel Vers. ve Dili
2016 - Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2025
Siz hesabınızda kırma kum %65 bulmuşsunuz ama sisteme 55 girmişsiniz diye bir sorunuz olursa
Teorik olarak %60'dan fazla olmasını istemiyoruz hatta %55 bile fazla bir sayı

Bunun gibi Farklı bilinmeyen ve kıstasları bulunan 10'a yakın excelimiz var benim açıkçası öğrenmek istediğim bir tane örnek üzerinde sizlerin yardımıyla yapıp nasıl çalıştığının mantığını anlayıp, diğerlerini ona uyarlamak istiyorum. Belki bizim sektörümüzde olan birileri Google aracılığı ile de bu örneği bulur kendisi geliştirir veya aynısını kullanır güzel bir çalışma olur.
 

bordo6181

Altın Üye
Katılım
15 Nisan 2020
Mesajlar
77
Excel Vers. ve Dili
2016 - Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2025
[J3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100), 1)
[K3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100 - [J3]), 1)
[L3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100 - [J3] - [K3]), 1)
[M3] = WorksheetFunction.MRound(WorksheetFunction.RandBetween(0, 100 - [J3] - [L3]), 1)

Yaptım doğruluk yüzdesi düzeldi açıkçası güzel oldu bu şekilde
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Merhaba.

Yaptığınız açıklamayı maalesef anlayamadım. Ancak 7 nolu mesajınızdaki düzenleme olduysa 6 nolu mesajınızdaki 55-60 olayı için de düzenleme yapılabilir. 0,100 yerine 0,60 yaparsanız 60'tan büyük oran bulmaz. Ancak bu durumda toplamı 100'e eşitlemek sıkıntı olabilir. Her tür için en az olabilecek bir değer de varsa onun da hesaba katılması gerekir. Bu kriterleri belirtirseniz güncelleme yapmaya çalışırım.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bu arada makronun mantığını anlatmaya çalışayım. önce J3'e 0-100 arasında bir değer veriyor. Sonra K3 hücresine 0 ile 100'den kalan sayı arasında rastgele bir değer veriyor. Sonra L3'e ve M3'e aynı mantıkla değer veriyor. Burda MRound fonksiyonuyla 5'in katları olacak şekilde değer almasını sağlamıştım. Siz bu kısmı anlamışsınız ve 1'in katları olacak şekilde değiştirmişsiniz. M3 için aslında hata yapmışım, RASTGELEARADA formülü yerine doğrudan 100'den diğer üç hücreyi çıkararak bulmamız gerekirdi.

If WorksheetFunction.Sum([J3:M3]) <> 100 Then GoTo 10

satırında eğer 4 hücrenin toplamı 100 değilse başa dön diyoruz. Buna aslında gerek yok, çünkü M3'hücresini kalan değer olarak ayarladığımızda sorun çıkmazdı.

For next döngüsünde ise G sütununda elde edilen sonuçlar F ve D sütunundaki değerlerle karşılaştırılıyor ve o ikisi arasında olmaması durumudna işlem yine başa dönüyor.

Diğer kodlar kodun hızlı çalışmasını sağlayan ve toplam sürenin ne kadar olduğunu belirleyen kodlar.
 

bordo6181

Altın Üye
Katılım
15 Nisan 2020
Mesajlar
77
Excel Vers. ve Dili
2016 - Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2025
Merhaba.

Yaptığınız açıklamayı maalesef anlayamadım. Ancak 7 nolu mesajınızdaki düzenleme olduysa 6 nolu mesajınızdaki 55-60 olayı için de düzenleme yapılabilir. 0,100 yerine 0,60 yaparsanız 60'tan büyük oran bulmaz. Ancak bu durumda toplamı 100'e eşitlemek sıkıntı olabilir. Her tür için en az olabilecek bir değer de varsa onun da hesaba katılması gerekir. Bu kriterleri belirtirseniz güncelleme yapmaya çalışırım.
Biraz kurcalayınca bu dediğiniz değişikliği de önceden yapmıştım.

Biraz karmaşık bir açıklama yapmışım haklısınız tekrar açıklamak gerekirse.

221164

Şimdi Doğal Kum %0 olduğu için bir önemi yok ondan bizim 3 malzeme grubumuz var.
Fotoğraftan da anlaşılacağı üzere 0 'dan 4 mm 'e kadar İdeal karışımı etkileyen başka bir etmen yok ondan dolayı önce kırma-kum oranını bulmak kolay mesela 4 mm 'de değer %87 ne ile çarparak %49 olur diye işlem yapıyorum sonuç 56 , bunu diğer kısımlar içinde yapıyorum sırasıyla 62 ,63 , 86 .. ortalaması ise 65 ama ben 60'dan yukarısını kabul etmiyorum ondan 60 seçiyorum.

221165

Şimdi Ortayı hesaplayalım kırma kum zaten bulduk artık sabit bu örnekte 11.2 ve 8 mm 'lik bölümleri tek etkileyen yer Orta bölüm kaldı

221166

8 mm için kırma kumdan 60 geliyor toplamda 63 olması gerekiyor yani Orta için %3 kalıyor. Bizim değerimiz 31 , %10 ile çarparsak 3 olabiliyor.
11.2 mm çin kırma kumdan 60 geliyor toplamda 79 olması gerekiyor yani Orta için %19 kalıyor. Bizim değerimiz 90, %21 çarparsak 19 olabiliyor.
Ortalaması %15 , o zaman 15 seçelim.

Kırma kum 60 seçmiştik , ortayı 15 , kabaya mecbur 25 kaldı.

Sonuç:

221167
 
Üst