Excel'in Matematik ile imtihanı

Bwtunc

Altın Üye
Katılım
28 Kasım 2008
Mesajlar
156
Excel Vers. ve Dili
değişken
Altın Üyelik Bitiş Tarihi
15-08-2026
Merhaba Arkadaşlar,

Excel ve matematik karmaşası beni içinden çıkılmaz bir sürece soktu. Bu soruya yanıt verecek kişi bence gidip en iyi yazılım şirketinde çalışmalıdır bence:).

Problem şu:



Yukarıda gördüğünüz resimde ürünlerin birim fiyatları var. Ve toplam tutar (hedef olarak düşünebilirsiniz) var. Adet bölümlerine sistem öyle rakamlar atamalı ki 20000 TL sonucuna ulaşalım. Veya en az 20000. Yada 20000 ile 21000 arası bir değere ulaşmalı.

Dosya ektedir.

Bende beyin mavi ekran verdi :)
 

Ekli dosyalar

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
791
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝365 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
Merhaba, Ürün fiyatlarının birbirinden farklı olması gerekmiyor ise;

Birim fiyat: 19,04762

olarak doldurursanız toplamı 20000.001 e ulaşmış olursunuz.

:)
 

Bwtunc

Altın Üye
Katılım
28 Kasım 2008
Mesajlar
156
Excel Vers. ve Dili
değişken
Altın Üyelik Bitiş Tarihi
15-08-2026
İşte dengeyi bozan ürünlerin farklı fiyatta olması. :) Ve sayıları rast gele ataması ve bu rastgele atamanın toplam sonucu 20000 olmalı. Microsft çözebilir mi acaba bu soruyu :)
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
58 55 52 49 46 43 40 37 34 31 28 25 22 19 16 13 10 7 4 1
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Sorunuzdaki varsayımları bence eksik belirtiyorsunuz.

Tüm ürünlere adet bilgisi yazıllması zorunlu olsa bile ürünlere ait adet sınırlamaları olmalı diye düşünüyorum.
Mevcut fiyatlara göre ve her üründen en az 1 adet olacaksa, 1'inci ürüne 3791, diğerlerine 1 yazarsanız sonuç 20.000 olur zaten.

Her üründen 1'er adet = 1.050 TL => Hedefe kalan 18.950
İlave ilk ürün => 18.950 / 5 = 3790 ===> SONUÇ 20.000

Soru açıklamaya muhtaç bence.
.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Sorunuzun Excel veya Microsft ile ilgisi yok, mesele algoritma oluşturmak.
bu sorunun tek cevabı olduğunu düşünmüyorum.
 

hgenc545

Altın Üye
Katılım
17 Aralık 2012
Mesajlar
133
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
21-08-2025
slmlar
dosya ektedir. Siz dip toplama istediğiniz rakam yazın. adetleri ona göre kendisi otomatik belirleyecektir.. :)

saygılar
 

Ekli dosyalar

Son düzenleme:

Bwtunc

Altın Üye
Katılım
28 Kasım 2008
Mesajlar
156
Excel Vers. ve Dili
değişken
Altın Üyelik Bitiş Tarihi
15-08-2026
58 55 52 49 46 43 40 37 34 31 28 25 22 19 16 13 10 7 4 1
:) Bundan sonra hayatımın en önemli rakamları bunlar olacak. Teşekkür ederim kardeşim yazdığın için ama önemli olan her defasında rast gele hesaplaması .


Sorunuzdaki varsayımları bence eksik belirtiyorsunuz.

Tüm ürünlere adet bilgisi yazıllması zorunlu olsa bile ürünlere ait adet sınırlamaları olmalı diye düşünüyorum.
Mevcut fiyatlara göre ve her üründen en az 1 adet olacaksa, 1'inci ürüne 3791, diğerlerine 1 yazarsanız sonuç 20.000 olur zaten.

Her üründen 1'er adet = 1.050 TL => Hedefe kalan 18.950
İlave ilk ürün => 18.950 / 5 = 3790 ===> SONUÇ 20.000

Soru açıklamaya muhtaç bence.
.
Kesinlikle haklısınız. 3 ürün veya 1 ürün satıp 20000 rakamına yine ulaşılabilir. Burada kısıt koyulabilirse şöyle olabilir. Mutlaka tüm ürünlerden satılmalıdır. Ek olarak birim fiyatı en pahalı 2 ürün (veya seçmeli iki ürün) + birim fiyatı en düşük 3 ürün ile 5 ürünün diğer ürünlerden daha fazla satılması. Ve bunların dışında tüm rakamları sistemin rast gele ataması. Yada ancak bu kadar kıstlayabildim. Daha nasıl şartlar getirebilirim bilemedim.

Sorunuzun Excel veya Microsft ile ilgisi yok, mesele algoritma oluşturmak.
bu sorunun tek cevabı olduğunu düşünmüyorum.
Microsoft kısmı işin sadece espiri bölümüydü. Ama excel ile alakası yok kısmına katılmıyorum. Çünkü excel tüm hesaplamalara olanak sağlayan bir program yetmediği yerde de Visual Basic destek veriyor. Algoritma konusunda hem fikiriz.

slmlar
dosya ektedir. Siz dip toplama istediğiniz rakam yazın. adetleri ona göre kendisi otomatik belirleyecektir.. :)

saygılar
Çok değerli kardeşim, Senin yardımsever tüm mesajları can gurban (halk dili ile söylemek geldi içimden). Doğru bir yorum katmışsın. Benim ilk düşündüğüm yönteme benziyor. Ama bunu rast gele ataması işi çok zor kılıyor. Senin gönderdiğinde bir sıralama oluyor 19,18, 17 gibi ama 5. üründen 5 tane satmışken 3. üründen 20 tane satarak bu sonuca ulaşabilir mi?

Biliyorum sorduğum soru çok ilginç ama ilginç olan herşey sonuca ulaştığında ayrı bi güzel oluyor.

Cevap veren tüm arkadaşlarıma saygılarımı sunuyorum.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
B1 hücresinden başlayarak aşağı doğru BirimFiyatlarını yazın A sütununda rasgele liste sıralanacaktır.
Excel'in Gücü :)
Kod:
Sub f()
For e = 1 To 1000000
For i = 1 To 20
 Randomize
Range("A" & i).Value = Int((40 * Rnd) + 1)
y = y + Range("a" & i) * Range("b" & i)
Next
If y > 20000 And y < 21000 Then
Exit For
End If
y = 0
Next
End Sub
 

Bwtunc

Altın Üye
Katılım
28 Kasım 2008
Mesajlar
156
Excel Vers. ve Dili
değişken
Altın Üyelik Bitiş Tarihi
15-08-2026
B1 hücresinden başlayarak aşağı doğru BirimFiyatlarını yazın A sütununda rasgele liste sıralanacaktır.
Excel'in Gücü :)
Kod:
Sub f()
For e = 1 To 1000000
For i = 1 To 20
 Randomize
Range("A" & i).Value = Int((40 * Rnd) + 1)
y = y + Range("a" & i) * Range("b" & i)
Next
If y > 20000 And y < 21000 Then
Exit For
End If
y = 0
Next
End Sub
Bu Excel'in gücü değil inan bana. bu tecrübeli düşünen zihnin gücüdür. :). Ama ben kodu çalıştırırken hata aldım. Birde 20000 öylesine oluşturulmuş bir rakam. Bu nedenle y değerini bir hücreden referans alması gerek. Bu bölümü nasıl çözebiliriz.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Kod:
If y > 20000 And y < 21000 Then
Satırını mesela
Kod:
If y > Range("E1") And y < Range("F1") Then
şeklinde değiştirin.
hatayı hangi koşulda ve nasıl bir hata alıyorsunuz.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
VBA kullanılmayan çözüm;
A1:A20 aralığına
Kod:
=RASTGELEARADA(1;40)
formülünü girin.
C1 hücresine
Kod:
=A1*B1
formülünü girip, bu formülü C20 hücresine kadar çoğaltın.
C21 hücresine
Kod:
=EĞER(VE(TOPLA(C1:C20)>= 20000;TOPLA(C1:C20)<= 21000);TOPLA(C1:C20);"")
formülünü girin
C 21 hücresinde sonuç görünene kadar F9 tuşuna tıklayın.
 
Son düzenleme:

burcin_end_muh

Altın Üye
Katılım
14 Ocak 2013
Mesajlar
161
Excel Vers. ve Dili
Türkçe 2013
Altın Üyelik Bitiş Tarihi
05-01-2028
Merhaba,

sonuçta bu sorunun tek bir çözümü olmadığı için bazı şeylere kullanıcı karar vermesi gerekiyor.

Bir dosya hazırladım. Kullanımı çok basit umarım işinize yarar.
g5 hücresine hedef tutarı geçene kadar bir değer verin
sonra toplam tutar değerini değer yapıştır sağına değer yapıştırın.
hangi üründen ne kadar eksiltmek istediğinizi giriyorsunuz.
Tam bölenlerden eksiltme yapabilirsiniz veya kalanlarda en küçük olanlardan seçim yapabilirsiniz.

İyi çalışmalar
 

Ekli dosyalar

Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Sn burcin_end_muh dosya ekinizi bir dosya paylaşım sitesine yüklerseniz çözümünüzü görmek isterim.
 

Bwtunc

Altın Üye
Katılım
28 Kasım 2008
Mesajlar
156
Excel Vers. ve Dili
değişken
Altın Üyelik Bitiş Tarihi
15-08-2026
Merhaba,

sonuçta bu sorunun tek bir çözümü olmadığı için bazı şeylere kullanıcı karar vermesi gerekiyor.

Bir dosya hazırladım. Kullanımı çok basit umarım işinize yarar.
g5 hücresine hedef tutarı geçene kadar bir değer verin
sonra toplam tutar değerini değer yapıştır sağına değer yapıştırın.
hangi üründen ne kadar eksiltmek istediğinizi giriyorsunuz.
Tam bölenlerden eksiltme yapabilirsiniz veya kalanlarda en küçük olanlardan seçim yapabilirsiniz.

İyi çalışmalar
Destek, emek ve girdiğiniz zamhmet için teşekkür ederim.

.

Alternatif.

Solver - Çözücü ile yapılmış.


.
Keza sizede çok teşekkür ederim. Fakat uygulamayı çalıştırmak istediğimde

Proje ve Kitaplık bulunamadı hatası vermekte. mac office kullandığım için olabilir diye düşünüyorum. Yarın windows tabanlı bir bilgisayarda deneyeceğim. Sağ olun, var olun.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
VBA penceresinde ; Tools > References 'te Solver'ı işaretleyin.

.
 
Son düzenleme:

gicimi

Altın Üye
Katılım
3 Şubat 2008
Mesajlar
593
Excel Vers. ve Dili
Office 2016 Eng. 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2024
Sn @İdris SERDAR bende de bu şekilde bir hata verdi. Tools > References 'te Solver'ı işaretleme rağmen,hata.JPG
 
Üst