Eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
üretim takip ile ilgili kendim bir excel dosya oluşturdum ve günbegün geliştiriyorum. aşağıda detayları verilen konularda yardımınızı rica ediyorum. buna göre;
üretim takip dosyası adı altında sipariş no (örn; 4152,4153,4154,..vb), renk (a,b,c,d..vb), brüt kg (25, 24, 26..vb), net kg (23, 22, 24..vb), top boya/ip boya (top boya, ip boya, top boya..vb), hafta (6,7,8..vb), işletmede/bitti (işletmede, bitti, işletmede..vb) çeklinde bir veri tablosu var. bu tablodan hareketle hafta hafta top boyama brüt toplamı, top boyama net toplamı, ip boyama brüt, ip boyama net, sipariş sayısı, renk sayısı gibi verileri sayacak&toplayacak bir formülasyona ihtiyacım var.
K2:O13 aralığındaki alanda, her satırda ve her sütunda en 1 adet olacak şekilde olması gereken sonuçları
elle/haricen hesaplayıp, hesaplama sonucunu olması gereken hücreye elle yazdıktan sonra,
yazılan bu sayıların herbiri için, bu sonuçlara nasıl ulaştığınıza dair açıklama yazmanızda yarar var.
Mevcut haliyle hesaplamanın nasıl yapılacağı pek anlaşılmıyor.
belirttiğiniz gibi elle doldurdum. ektedir. verileri soldaki veri tablosundan alıyor. örneğin 6.hafta top boyama brüt kısmı (K2) veri tablosundan süzme işlemi (hafta=6; top boyama/ip boyama=top boyama) yapıldıktan sonra toplam kg bilgisidir. aynı şekilde 6.hafta sipariş sayısı için 6.hafta seçiliyken toplam sipariş sayısı (örnekte 4152, 4156, 4157, 4158,4162,4163,4164) 7 olarak bulundu. burada 4152 nolu siparişin 3 rengi olduğundan onları saymayıp sadece sipariş sayısı farklı olanları aldı.
Function COUNTIFS_UNIQUE(Plage, ParamArray vargs())
Set dico = CreateObject("scripting.dictionary")
temp = Application.Transpose(Plage.Value)
For i = LBound(temp) To UBound(temp)
sconc = "": scur = ""
For j = LBound(vargs) To UBound(vargs)
If j Mod 2 = 1 Then sconc = sconc & vargs(j) Else scur = scur & vargs(j)(i)
Next j
If sconc = scur Then
If Not dico.exists(temp(i) & scur) Then dico(temp(i) & scur) = ""
End If
Next i
COUNTIFS_UNIQUE = dico.Count
End Function
Selamlar,
Öncelikle şunu söylemek isterim....
Daha önce vermiş olduğum
TOPLA.ÇARPIM((dizi<>"") / EĞERSAY(dizi;dizi&""))
şeklindeki formül, kriter olmaksızın çalışan formüldür..... Nedenine gelince diğer konuda yazdığım gibi koşulları sağlayanlar 1 sağlamayanlar ise 0 olmaktadır... Koşulları sağlayanlar için problem yok... Sağlamayanlar ise, 1/0 olup #SAYI/0! hatası verecektir... Hataların olması durumunda ise bu şekilde formül çalışmayacaktır..... Kriter olması durumunda oluşan bu #SAYI/0! hatalarından bir şekilde arındırmak gerekecektir....
Eğer ÇOKEĞERSAY kullanıp, bu formüle benzer formül isterseniz aşağıdaki DİZİ formülünü 5. no lu mesajdaki dokumanda kullanabilirsiniz....
formülünü F9 ile deneyerek nasıl çalıştığına bakabilirsiniz....
Benzersizlerde, Neden 1/EĞERSAY, ya da 1/ÇOKEĞERSAY ise şöyle açıklamaya çalışayım...
A1 : A14 aralığında, a, b, c, d harflerinin bulunduğu liste olsun... a : 5 adet, b : 3 adet c : 2 adet ve d : 4 adet bulunsun.
B1 e =1/EĞERSAY($A$1:$A$14;A1) formülünü yazın ve aşağıya kopyalayın...
B1 deki sonuç = 0,2 olacaktır. Çünkü A1 de a yazmakta ve a : 5 adet olduğundan 1/5 = 0,2 olacaktır.
Yani a yazan hücreler için sonuç hep 0,2 olacaktır. Bunları toplasanız 5 adet a için 5 adet 0,2 yi topladığınızda 1 verecektir. yani 5 adet a için benzersiz a sadece 1 dir.
Diğerlerini de siz gözlemlersiniz...
Yukarıda verdiğim formülü de, F9 ile deneyin.... ELEMAN yazan kısımda ya -1 ya da 1 değeri üretilir. Bu değerler de ÇOKEĞERSAY ile elde edilen değerlerin üs kuvvetidir. Yani -1. kuvveti demek 1 bölü demek.. 1. kuvveti ise kendisidir.
ÇOKEĞERSAY ile değer olanlar -1. kuvveti, 0 olanlar ise 1. kuvveti uygulanır. Dolayısıyla 0 olanlara 1/0 = #SAYI/0! hatası elde edilmeden 0 şeklinde bırakılıp , değer olanlarda ise 1 bölü alınıp toplam ile benzersiz adetler üretilmiştir.
Sizin yazdığınız formüle gelince, gönderdiğim dokumana şu şekilde adapte edebilirsiniz..
Sonradan ekleme : Benim yazdığım formülde K9 da Top Boyama varmış. Sizin isteğiniz İp Boyama olduğundan ve İp boyama K10 da olduğundan K9 ları K10 şeklinde yazınız ...
Çok açıklayıcı olmuş. Çok Teşekkür ediyorum. Soruyu soran ya da konuyu açan ben değilim ancak bu çalışmaya cevap bularak kendi bilgimi pekiştirmeye ve geliştirmeye çalışıyorum.
Bu site, içeriği kişiselleştirmek, deneyiminize uyarlamak ve kayıt olmanız durumunda giriş yapmanızı sağlamak için yasal düzenlemelere uygun çerezler (cookies) kullanır.
Bu siteyi kullanmaya devam ederek, çerez kullanımına izin veriyorsunuz.