Excel de takıldığım yer

Omega

Kıdemli Üye
Katılım
24 Kasım 2018
Mesajlar
2,063
Excelde karmaşık bir program hazırlıyorum.Bir yerde takıldım.Eğer Power Query,Slicer,Relationships,Pivot Table konuları hakkında tecrübeniz varsa ,yardımcı olmak isteyen arkadaşa özel mesajla dosyayı gönderip konuyu izah etmek istiyorum.
*Konu karmaşık olduğundan ve burada tarif etmesi uzun süreceğinden izah etmiyorum.İleride çözüldüğünde kolay anlaşılır bir şekilde ekleyebilirim
 
Aslında konyu biraz basitleştirdim gibi:
Sayfanın birinde Siparişler var.Diğer sayfalalardan birinde de bu ürünlerin nelerden oluştuğunun tablosu var
Yapmak istediğim 3.sayfada;
Verilen herbir sipaişin altında nelerden oluştuğunu listelemesi sonrada bu hammaddelerin toplamlarını alması
A Ürününde örneğin 20 tane M4 civata kullanılıyorsa ve 20 adet A ürünü siparişi varsa bunun için 400 tane M4
B Ürünü için örneğin 30 tane kullnılıyorsa ve 40 tane siparişi varsa bunun için 1200 adet M4 .Toplamda 1600 adet gerekiyor diyecek
Tabi 2 tablo ortak alan var (Relations için) Benim istediğim Many to Many,One to Many yi kabul edebiliyor
İsterseniz size bu kısmı göndereyim
(Dosya paylaşmak için hangi siteye yüklesem?)
 
Son düzenleme:
Bunun için Excel kullanmanızın bir nedeni var mı? Bir veritabanı kullanarak ya da MS Office içinde kalmak istiyorsanız MS Access ile çok daha düzgün yapılabilir gibi geldi.

İlla Excel ile yapmak istiyorsanız Pivot yerine COUNTIF, SUMIF fonksiyonlarına da bakabilirsiniz.
 
Bu tür çözümler için Excel'in doğru araç olduğunu düşünmüyorum.
Çünkü:
1- Kullanıcı hatasına çok açık. Hücre kitlem, makrolar, veri doğrulama kuralları vs bir sürü şey yapmak gerekebilir.
2- Kullanıcı arayüzü sadece tablo olduğundan özellikle çok kolona ihtiyaç duyulduğunda iş zorlaşıyor.
3- Çok kullanıcının ortak veriyle çalışması çok zahmetli ve anlamsız çözümler üretmeye ihtiyaç doğuruyor.
4- Çok sık şekilde kullanıcı dosyayıbozabiliyor. Farklı Excel versiyonlarında bir sürü problem çıkıyor.
5- Kod yazmak gerektiğinde VB artık çok demode.
...

Veritabanı kullanan daha yapısal bir çözüm kullanmanızı tavsiye ederim.

Ancak, madem bu yolla başlamışsınız şöyle basit bir çözüm örneği de hazırladım:
- Tarif ettiğiniz gibi 1. sayfada sipariş bazında ürünleri ve içindeki adetlerini giriyorsunuz.
- 2. sayfada ürünlerin reçeteleri var. Reçetenin üzerindeki her satır için D kolonunda o sipariş sayfasında o ürün-malzeme ikilisi bazında kaç adet o malzemeye ihtiyaç olduğunu hesaplıyor (SUMIF fonksiyonuyla)
- 3. sayfada ise her bir malzeme için toplam ihtiyacı hesaplıyor. İhtiyaç adedi 0 olan malzeme satırlarını filtre ile görünmez yapabilirsiniz.
- Ben belli sayıda (99) sipariş ve BOM satırı destekleyecekşekilde yaptım. İhtiyacınıza göre formülleri düzenleyebilirsiniz.


1667154868665.png
1667154891186.png
1667154926074.png
 

Ekler

  • BOM-IHTIYAC-ORNEK.zip
    12.1 KB · Görüntüleme: 83
Hocam
Nazik tavsiyeleriniz için teşekkürler.
Program aslında o kadar basit değil.İçeriside Hammaddeler /Yarı Mamül ve Ürünler tabloları da var
Programda açılır listler ,Veri Doğrulama ve pek çok mantık kontrolleri de var
Programın iki ekran görüntüsünü ekledim .
Buraya dosyada ekleniyormuş çözemediğim kısmı da buraya ekledim.İstedğim şey :
Bir Sheetdeki recetelerin sipariş tablosuna bağlanarak altata göstermesi(Genel toplamını alması)

Ekleme:
Eğer excel de nasıl yapıldığını izah etmek isterseniz
Bandicam Ekran video Kaydedici

Streamable Video Yükleme Sitesi
 

Ekler

  • GONDER.rar
    9.5 KB · Görüntüleme: 84
  • ekran11.jpg
    ekran11.jpg
    136.7 KB · Görüntüleme: 64
  • ekran22.jpg
    ekran22.jpg
    209.7 KB · Görüntüleme: 68
Son düzenleme:
Benim anladığım bir tablodan malzeme seçildiğinde diğer tablodan fiyat çekilerek en altta genel toplam gösterilecek. Bunun için düşey ara fonksiyonu ile diğer tablodan fiyat çekilebilir.
 
@Endorfin35+ : Benim anladığım kadarıyla, sipariş bazında satır satır ihtiyaç duyulan malzemelerin listesini, adedini ve maliyetini görecekleri bir rapor istiyorlar. (bknz: ekran görüntüsü). Bunun için dinamik satır ekleyecek birşey lazım. Bu yüzden pivot düşünmüşler.

@Omega : Dediğim gibi Excel bunun için hiç doğru araç değil bence. Sizin bir rapor geliştirme aracına ihtiyacınız var. MS Office'e yatkın olduğunuzu varsayarak MS Access önerebilirim. Ama Excel'de ne kadar yapılır bir bakalım:

1667168293974.png



Bunu Excel ile yapmak için data model oluşturup Power Query'de her tabloyu import edeceksiniz (bknz. TSIPARISLER, T_RECETELER, Sheet1, Sheet2). Sonra "merge query" ile ihtiyacınız olan tüm veriyi içeren tek bir tablo ouşturacaksınız (birinci ve ikinci sheetinizin inner joi hal. bknz. SORGU). Sonra buna ihtiyacınız olabilecek hesaplama kolonlarını ekleyeceksiniz (malzeme ihtiyacı, toplam malzeme maliyeti gibi. bkz: SORGU.TOPLAMMALIYET, SORGU.IHTIYAC, SORGU.BASLIK). SORGU tablosu (aslında query/view) ihtiyacınız olacak tüm kolonları içermeli.

1667169221899.png


En son adım SORGU tablosunu (aslında query) kullanarak pivotunuzu oluşturmak.
Notlar:
- Sipariş miktarı 2 olunca (KG yazmasına rağmen) 2 ton diye anlıyorum.
- Satırda bir kolondan fazla veriyi birlikte göstermek için (örnek: "10 - YÜZEY TEMİZL 1TON(5 LTLİK) - miktar:2") BASLIK kolonuna bakın.
- İhtiyacınıza göre hesaplamayı ve geri kalan kolonları düzenleyebilirsiniz diye düşünüyorum.
- Pivot kullandığınızda veri değişikliklerinde Excel her zaman yenilemeyebilir. Menüden "Yenile" yapmanız gerekebilir.
 

Ekler

  • GONDER_ornek.rar
    104.4 KB · Görüntüleme: 82
İlgilendiğiniz içi çok teşekkür ederim .Aslında Excel için karmaşık bir konu veritabanı ağırıklı farkındayım.

Access ile çok daha kolay hazırlanır ancak Acess'i en son 2003 de kullanmış, 7-8 tablolu 150 bin kayıtlı bir uygulama hazırlamıştım.
Geçen biraz bakındım tablo hazırlama arayüzü çok değişmiş bir tabloyu bile hazıramakta zorlandım.
Sanırım bunu Access de hazırlamak en mantıklısı ,kaldıki kullanacak arkadaş bilgisayarıda çok iyi bilmiyor hiçbirşey yapmasa satırlar arasında boşluk bıraksa bile exel sapıtır.
İstediğim sizin raporladığınız gibiydi ama exceli çok zorlayacak.
Tekrar teşekkürler.
 
Sonunda buraya bağlayacaksanız niye uğraştırdınız :)

Şaka yapıyorum. Kolay gelsin..
 
Sonunda buraya bağlayacaksanız niye uğraştırdınız :)

Şaka yapıyorum. Kolay gelsin..
İstenilenler başlangıçta Excel ile yapılabilecek seviyedeydi ama her program istenğinde olduğu gibi "O özellikte da olsun " "Bu özellikte olsun " denilince iş büyüdü.

Aslında yazdığım programı derleyip exe yapabileceğim yeni dillerden birini de öğrenmek isterim.Ancak:
3 GB RAM li ,Pentium(R) Dual Core CPU T4500 2.30 Ghz ve 32 bitlik Windows 7 yüklü artık antika sayılabilecek notebok da düzgün çalışacak bir program da pek bulacağımı zannetmiyorum.
Eğer veritabanı programları için hızlı öğrenilebilecek programlama dili tavsiyeniz varsa öğrenmek isterim.
 
Son düzenleme:
Excel in sınırları çok daha fazla
sınırlar.jpg

Excede zorlanma olmaz ilk açılışta fazla kayıt sayısında biraz geç açılır ama kaydı bulmakta ,göstermekte gecikme olmaz.
Çünkü yapılan tüm işlemlerde excelin komut ve fonksiyonları syntax olarak düzgün yazıldığı için yavaşlama olmaz.
Access de ise zaten sınır yok.Acemice yapılan işlemler olursa biraz orada yavaşlar.
 
Son düzenleme:
Madem konu excel Youtube da en iyi yerli ve yabancı Excel öğreten kanallarıda listeleyeyim .
En iyi yabancı ve yerli Excel öğreten kanalllardan bazıları
1. Excells Fun
2. Leila Grahani
3.Ömer Bağcı
 
Son düzenleme:
Excel'in sınırı benim bildiğim 7.000'dir. 7bin satırdan sonra zorlanmaya başlar.
1985 yılında Unix işletim sistemi kullanan Apricot F1 3 terminalli networkümüz vardı .Ana bilgisayarın 30 kusur megabaytlık harddiski olan terminallarrde de sanırım 640 Kilobaytlık hafızası vardı.Firmanın deposunda 20 bin civarında kodlu malzemesi vardı.Yıllık toplam 18 bin civarı giriş işlemi 12 -13 bin civarı çıkış işlemini tutardı.Muhasebe kaydını ve diğer şantiyelerdeki toplam 1000 e yakın iş makinası ve aracının da kaydını tutardı.(Hangi Şantiyede hangi araçlar,iş makinaları Jenaratörler vb var görmek için) böyle bir sistemde yaklaşık 4 yıl çalıştım.
Tabiki firma o zamanlar Türkiyede en büyük ilk 10 firmanın içerisindeydi.

Bu sistemin programını bir kişi 1 yılda yazmıştı.O programcımız genç yaşında vefat etti (Allah Rahmet Eylesin) kesinlikle Türkiyenin en iyi programcılarındandı zaten bizden ayrıdıktan sonra IBM de çalışmaya başlamıştı.
Adamın 1 yılda yazdığı programın kaynak kodlarının büyüklüğü için yaklaşık 10 cm kalınlığında sürekli formdu desem sanırım kaç satır olduğu tahmin edilir.
Sonradan bilgisayarlar gelişince yeni işletim sistemine adapte etmek için birisi foxpro ile yazmaya kalkmış 2 yılda kodu yazamamıştı.
Yani demem o ki iş bilenin kılıç kuşananın.Bu devirde düzgün Veritabanını tasarlayabilecek adam bile pek çıkmıyor.Bırakın kodlamasını.
Özetle 1985 deki DOS altındaki Basic bile 18-20 bin kayıdı tutuyordu.
Çalıştığımız Apricot bilgisayar
*İstenirse klavye kablosu takılmadan da kullanılırdı ama biz genelde ince kablosunu kullanırdık

apricot f1 terminal.jpg


Exelin sınırlarının anlatıldığı video
 
Son düzenleme:
  • Beğen
Reactions: nt

Çevrimiçi personel

Forum istatistikleri

Konular
5,788
Mesajlar
99,004
Üyeler
2,464
Son üye
s4met

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top