• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
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:

4138incil6326272.jpg


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

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.

:)
 
İş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 :)
 
58 55 52 49 46 43 40 37 34 31 28 25 22 19 16 13 10 7 4 1
 
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.
.
 
Sorunuzun Excel veya Microsft ile ilgisi yok, mesele algoritma oluşturmak.
bu sorunun tek cevabı olduğunu düşünmüyorum.
 
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:
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.
 
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
 
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.
 
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.
 
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:
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

Sn burcin_end_muh dosya ekinizi bir dosya paylaşım sitesine yüklerseniz çözümünüzü görmek isterim.
 
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.
 
VBA penceresinde ; Tools > References 'te Solver'ı işaretleyin.

.
 
Son düzenleme:
Sn @İdris SERDAR bende de bu şekilde bir hata verdi. Tools > References 'te Solver'ı işaretleme rağmen,hata.JPG
 
Geri
Üst