• Bir süredir maillerde yaşanan sorunlar giderilmiştir. Şifremi unuttum yaparak şifrelerinizi mailinizden alabilirsiniz.

  • Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Tarihe ve Olumlu/Olumsuz Durumuna Göre Düşey Ara ve Ekle Fonksiyonu

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Mtudes

Yeni Üye
Kullanıcı Bilgileri
Aktiflik
Çevrimdışı
Katılım
30 Ağu 2021
Mesajlar
270
Çözümler
1
Aldığı beğeni
92
Excel V
Office 2016 TR
Konuyu Başlatan
Merhaba
Liste sayfasında F4:F2000 sütunu aralığında deneyler var.Aynı deneyden birden fazla bulunabilir.K sütununda aynı aralıkta ise (K4:K2000) deneylerin test bitiş tarihi var.M sütununda deneylerin olumlu/olumsuz durumu var.O sütununda ise deney adedi var.
Deney Sayısı adlı sayfada A6:A50 aralığı liste sayfasında bulunan deneyler kayıtlı.Yine deney sayısı sayfasında b3:y3 aralığında aylar mevcut.B5:Y5 aralığında olumlu olumsuz sonuç durumları mevcut.

Yapmak istediğim şey ;Liste sayfasındaki F sütununda bulunan deneyler eğer M sütunundaki olumlu/olumsuz durumu girilmişse ve K sütununda bitiş tarihi girilmişse bu deneyleri Deney Sayısı sayfasındaki A6:A50 aralığında bulup bitiş tarihine göre olumlu olumsuz durumuna göre O sütunundaki deney adedini eklesin.Yalnız olumlu /olumsuz durumu ve bitiş tarihi girilmişse deney adedi hücresi boş olsa bile Deney sayısını 1 olarak eklesin.
Deneyleri girerken numune sayısı 1 den fazla ise deney adedini giriyoruz. 1 den fazla değilse Deney adedini girmiyoruz.Bu yüzden deney adedi boşsa 1 olarak eklenecek, dolu ise ilgili değer eklenecek.
Şu an kullanmış olduğum bir fonksiyon var yalnız bu fonksiyon liste sayfasındaki aynı deneylerden sadece birinin sayısını alıyor.Aynı deneyden birden fazla girilmişse onları hesaplamaya dahil etmiyor.Bu fonksiyon üzerinden gidilebilir.Kullanmış olduğum başka bir fonksiyondada işlemler çok ağır işliyordu.Bu sorun göz önünde bulundurulup yapılırsa sevinirim.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Örnek Dosya Ektedir.
 

Ekli dosyalar

  • ÖRNEK DOSYA.xlsm
    43.7 KB · Gösterim: 7
Çözüm
Merhaba
Liste sayfasında F4:F2000 sütunu aralığında deneyler var.Aynı deneyden birden fazla bulunabilir.K sütununda aynı aralıkta ise (K4:K2000) deneylerin test bitiş tarihi var.M sütununda deneylerin olumlu/olumsuz durumu var.O sütununda ise deney adedi var.
Deney Sayısı adlı sayfada A6:A50 aralığı liste sayfasında bulunan deneyler kayıtlı.Yine deney sayısı sayfasında b3:y3 aralığında aylar mevcut.B5:Y5 aralığında olumlu olumsuz sonuç durumları mevcut.

Yapmak istediğim şey ;Liste sayfasındaki F sütununda bulunan deneyler eğer M sütunundaki olumlu/olumsuz durumu girilmişse ve K sütununda bitiş tarihi girilmişse bu deneyleri Deney Sayısı sayfasındaki A6:A50 aralığında bulup bitiş tarihine göre olumlu olumsuz durumuna göre O...
Deney Sayısı sayfasında;
deneme deneyi Ocak ayında olumlu 10 var, 11 olması gerekmiyor mu?
abc deneyi de Kasım ayında olum 5 yazılmış, 6 olması gerekmiyor mu?
 
Selamlar,
Kullanmış olduğum başka bir fonksiyondada işlemler çok ağır işliyordu.Bu sorun göz önünde bulundurulup yapılırsa sevinirim
Ağır işlediğini belirttiğiniz nasıl Başka bir fonksiyon (formül) mevcuttu bilemem, ama, belirtmek isterim ki, ÇOK kriterli TOPLAMA işlemlerinde DİZİ Formül mantığında çalışan ya da DİZİ formül olan formüller kullanılarak çözüme gidilebilir.
Hele bir de kriterlerden biri, BOŞ ise 1 olarak kabul edilmeli gibi ayrıcalıklı bir kriter ise işlem süresi biraz daha uzayacaktır.

Bir de sanıyorum, verilerin Tamamı 2021 yılına ait... Ben formüllerde 2021 olarak aldım.

Bence en uygun/performanslı çözüm, makro ile çözüm olacaktır. Ancak bu da beni aşacaktır.

İki formül önereceğim... Dosyanızda, Performans sorunu ne olur bilemem
Deney sayısı B6 hücresine

=TOPLA.ÇARPIM(EĞER(liste!$O$4:$O$2000="";1;liste!$O$4:$O$2000);(liste!$F$4:$F$2000=$A6) * (liste!$K$4:$K$2000>=TARİH(2021;AY("1."&B$3);1)) * (liste!$K$4:$K$2000<TARİH(2021;AY("1."&B$3)+1;1))*(liste!$M$4:$M$2000=B$5))

Ekleme : TOPLA.ÇARPIM formülünde, eğer YIL hep 2021 ise, B3:Y3 aralığını Ocak, ocak, Şubat, Şubat,...... gibi yazmaktansa 1, 1, 2, 2,..... gibi ay numaralarını yazarsanız kriteri bir defa değerlendirerek çözüme gidilebilir... Yani

=TOPLA.ÇARPIM(EĞER(liste!$O$4:$O$2000="";1;liste!$O$4:$O$2000);(liste!$F$4:$F$2000=$A6) * (AY(liste!$K$4:$K$2000)=B$3) * (liste!$M$4:$M$2000=B$5))

ya da
ÇOKETOPLA , TOPLA.ÇARPIM a göre biraz daha performanslıdır, ancak, onda da toplam aralığındaki kriter (BOŞ ise 1 alınmalı) devreye girince...? (Boş olanları ayrıca saydırmak... ve toplama eklemek gibi extra bir işlem var.)

CoffeeScript:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Selamlar,

Ağır işlediğini belirttiğiniz nasıl Başka bir fonksiyon (formül) mevcuttu bilemem, ama, belirtmek isterim ki, ÇOK kriterli TOPLAMA işlemlerinde DİZİ Formül mantığında çalışan ya da DİZİ formül olan formüller kullanılarak çözüme gidilebilir.
Hele bir de kriterlerden biri, BOŞ ise 1 olarak kabul edilmeli gibi ayrıcalıklı bir kriter ise işlem süresi biraz daha uzayacaktır.

Bir de sanıyorum, verilerin Tamamı 2021 yılına ait... Ben formüllerde 2021 olarak aldım.

Bence en uygun/performanslı çözüm, makro ile çözüm olacaktır. Ancak bu da beni aşacaktır.

İki formül önereceğim... Dosyanızda, Performans sorunu ne olur bilemem
Deney sayısı B6 hücresine

=TOPLA.ÇARPIM(EĞER(liste!$O$4:$O$2000="";1;liste!$O$4:$O$2000);(liste!$F$4:$F$2000=$A6) * (liste!$K$4:$K$2000>=TARİH(2021;AY("1."&B$3);1)) * (liste!$K$4:$K$2000<TARİH(2021;AY("1."&B$3)+1;1))*(liste!$M$4:$M$2000=B$5))

Ekleme : TOPLA.ÇARPIM formülünde, eğer YIL hep 2021 ise, B3:Y3 aralığını Ocak, ocak, Şubat, Şubat,...... gibi yazmaktansa 1, 1, 2, 2,..... gibi ay numaralarını yazarsanız kriteri bir defa değerlendirerek çözüme gidilebilir... Yani

=TOPLA.ÇARPIM(EĞER(liste!$O$4:$O$2000="";1;liste!$O$4:$O$2000);(liste!$F$4:$F$2000=$A6) * (AY(liste!$K$4:$K$2000)=B$3) * (liste!$M$4:$M$2000=B$5))

ya da
ÇOKETOPLA , TOPLA.ÇARPIM a göre biraz daha performanslıdır, ancak, onda da toplam aralığındaki kriter (BOŞ ise 1 alınmalı) devreye girince...? (Boş olanları ayrıca saydırmak... ve toplama eklemek gibi extra bir işlem var.)

=ÇOKETOPLA(liste!$O$4:$O$2000;liste!$F$4:$F$2000;$A6;liste!$K$4:$K$2000;">="&TARİH(2021;AY("1."&B$3);1);liste!$K$4:$K$2000;"<"&TARİH(2021;AY("1."&B$3)+1;1);liste!$M$4:$M$2000;B$5)+ÇOKEĞERSAY(liste!$O$4:$O$2000;"<>";liste!$F$4:$F$2000;$A6;liste!$K$4:$K$2000;">="&TARİH(2021;AY("1."&B$3);1);liste!$K$4:$K$2000;"<"&TARİH(2021;AY("1."&B$3)+1;1);liste!$M$4:$M$2000;B$5)
Yılı girmeden yapılamaz mı acaba? sadece aylar üzerinden gitsek.aylarıda 1,1;2,2 şeklinde girsem...
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Bu formül diğerine göre daha kısa .
 
Deney Sayısı sayfasında;
deneme deneyi Ocak ayında olumlu 10 var, 11 olması gerekmiyor mu?
abc deneyi de Kasım ayında olum 5 yazılmış, 6 olması gerekmiyo
Evet aynen öyle sayın muratboz06 .Formülde öyle bir sorun var.Tekrar eden deneylerden sadece ilkini alıyor.diğerlerini hesaba katmıyor.Ben ise tekrar eden deneylerin tamamını hesaba katmak istiyorum
 
Merhaba
Liste sayfasında F4:F2000 sütunu aralığında deneyler var.Aynı deneyden birden fazla bulunabilir.K sütununda aynı aralıkta ise (K4:K2000) deneylerin test bitiş tarihi var.M sütununda deneylerin olumlu/olumsuz durumu var.O sütununda ise deney adedi var.
Deney Sayısı adlı sayfada A6:A50 aralığı liste sayfasında bulunan deneyler kayıtlı.Yine deney sayısı sayfasında b3:y3 aralığında aylar mevcut.B5:Y5 aralığında olumlu olumsuz sonuç durumları mevcut.

Yapmak istediğim şey ;Liste sayfasındaki F sütununda bulunan deneyler eğer M sütunundaki olumlu/olumsuz durumu girilmişse ve K sütununda bitiş tarihi girilmişse bu deneyleri Deney Sayısı sayfasındaki A6:A50 aralığında bulup bitiş tarihine göre olumlu olumsuz durumuna göre O sütunundaki deney adedini eklesin.Yalnız olumlu /olumsuz durumu ve bitiş tarihi girilmişse deney adedi hücresi boş olsa bile Deney sayısını 1 olarak eklesin.
Deneyleri girerken numune sayısı 1 den fazla ise deney adedini giriyoruz. 1 den fazla değilse Deney adedini girmiyoruz.Bu yüzden deney adedi boşsa 1 olarak eklenecek, dolu ise ilgili değer eklenecek.
Şu an kullanmış olduğum bir fonksiyon var yalnız bu fonksiyon liste sayfasındaki aynı deneylerden sadece birinin sayısını alıyor.Aynı deneyden birden fazla girilmişse onları hesaplamaya dahil etmiyor.Bu fonksiyon üzerinden gidilebilir.Kullanmış olduğum başka bir fonksiyondada işlemler çok ağır işliyordu.Bu sorun göz önünde bulundurulup yapılırsa sevinirim.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Örnek Dosya Ektedir.
istediğiniz çözüm hem hızlı hem dosyayı yormuyor kolay gelsin...
 

Ekli dosyalar

  • ÖRNEK DOSYA(v1).xlsm
    49 KB · Gösterim: 13
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst