• DİKKAT

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

Soru filtreleme ama başka türlü

Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
sorumu anlatmak bayağı zor. örnek ekte. bakabilen olursa sevinirim.
 

Ekli dosyalar

Merhaba.
Umarım yanlış anlamadım.
-- Öncelikle; U2'nin veri doğrulama liste kaynağını =$O$3:$O$6 şeklinde, diğer hücrelerin veri doğrulama liste kaynağını =$O$12:$O$19 olarak değiştirmenizde yarar olduğunu belirteyim.
-- Anlatımınızdan sadece U2, V2 ve W2'deki seçimlere göre sonuç istediğinizi anlıyorum.
X2:AC2 aralığındaki veri doğrulama uygulamasının işlevini anlamadım.
İsteğiniz, sadece U2, V2 ve W2'deki seçimlere göre sonuç almak ise AU1 hücresine aşağıdaki formülü uygulayıp liste boyunca kopyalayın.
=--VE(AE1=$U$2;YADA($V$2="HEPSİ";VE($V$2<>"HEPSİ";$W$2=AF1)))
 
anlatması zor, zorlanıyorum. tekrar deneyeyim... U2 de seçeceğim seçenek AE sütununda, dolayısı ile AU ya yazdığım formül bu seçeneğe göre 1 yazıyor. burası net sanırım ve burayı mutlaka seçiyorum. AE sütununun yanında AF de ihalenin durumları yazıyor. işte burada alt seçenek olarak tanımlayabileceğim AF yi de V2:AC2 arasında yapacağım seçimleri de dikkate alarak AU ya 1 yazsın. U hücresini "yol" olarak seçtim diyelim, v2 ye tamamlandıyı seçtim ve W2 de ilanda seçildi, diğerleri boş kalsın. bu durumda bana AE hücresinde yol yazan ve aynı zamanda AU hücresinde tamamlandı yazanlar ile ilanda yazanların karşısındaki, AU hücresine 1 yazacak. özel olarak, bunların haricinde ise V2 de hepsi yazarsa AF sütununun bir önemi yok sadece U2 yi dikkate alıp AE sütununda yol yazanların karşısında AU ya 1 yazacak.

seçimlerimin U2 haricinde V2:AC2 arasındaki yazanları aratıp karşısındaki AU hücresinde bu seçenekleri de aratarak 1 yazmasını istiyorum.
 
Yani, V2'de HEPSİ dışında bir seçenek seçilmişse V2:AC2 arası için YADA diye düşünülecek öyle mi?
 
oldu :) teşekkürler. sadece tüm işleri seçmek istediğimde v2 de de hepsini seçmem gerekecek sanırım. v2:ac2 arası boşsa sadece u daki değeri almasını sağlarsak aklımdakinin aynısı olacak. bu da işimi görüyor tabi ki. teşekkürler
 
Eksik gibi gördüğünüz nedir anlayamadım doğrusu.
U2'den (AE için) ve V2'den HEPSİ ya da V2:AC2'de seçilenler (AF için) için 1 sonucu elde edilmiyor mu?
V2 hücresinin BOŞ olması HEPSİ anlamına mı gelsin istiyorsunuz?
 
Eksik gibi gördüğünüz nedir anlayamadım doğrusu.
U2'den (AE için) ve V2'den HEPSİ ya da V2:AC2'de seçilenler (AF için) için 1 sonucu elde edilmiyor mu?
V2 hücresinin BOŞ olması HEPSİ anlamına mı gelsin istiyorsunuz?

evet tam dediğiniz gibi


Tapatalk kullanarak iPhone aracılığıyla gönderildi
 
Formül içeren cevabımı güncelledim, sayfayı yenileyerek önceki cevabımı kontrol ediniz.
 
Ömer Bey teşekkürler. sanırım formül bozuldu. ilkini kullanarak işimiz çözebiliyorum. tekrar teşekkürler...
 
Formülü güncelledim, tekrar kontrol edin.
-- U2 dolu, V2 BOŞ veya HEPSİ iken,
-- ya da V2 boş veya HEPSİ değilken, V2:AC2'de seçilenler için 1 değeri elde edilir.
 
Ömer Bey. son bir ekleme yapılabilirse. U2 de seçimler arasına tümü diye bir seçenek eklediğimde o2:o6 arasındaki tüm servisleri seçtirebilir miyiz. diğer kısımlar aynı kalacak.
 
Aşağıdaki formülü kullanabilirsiniz.
Rich (BB code):
=--VE(YADA(VE($U$2="TÜMÜ";AE1<>"");VE($U$2<>"";AE1=$U$2));YADA(VE(YADA($V$2="HEPSİ";$V$2="");AF1<>"");VE(AF1<>"";EĞERSAY($V$2:$AC$2;AF1)>0)))
 
Çok yaşayın. sanki soracağımı biliyormuş gibi. dün yapmışsınız da şimdi cevap vermişsiniz gibi oldu. elinize sağlık
 
Cevap oluşturduğum belgelere, verdiğim cevapları uygulayıp (zaman zaman da muhtemel ilave soruyu tahmin ediyorum tabi)
belgeyi kaydederek kapatıyorum.
.
 
Alternatif makrolu çözüm.

Kod:
Sub test()
a = Range("AE1:AF" & Cells(Rows.Count, "AE").End(3).Row).Value
    ReDim b(1 To UBound(a), 1 To 1)
    u = [U2]: v = [V2]: w = [W2]:
    x = [X2]: y = [Y2]: Z = [Z2]:
    aa = [AA2]: ab = [AB2]: ac = [AC2]:
    For i = 1 To UBound(a)
        say = say + 1
        If a(i, 1) = u Then
            If v = "HEPSİ" Then GoTo atla
                If a(i, 2) = w Or a(i, 2) = x Or a(i, 2) = y Or a(i, 2) = Z _
                        Or a(i, 2) = aa Or a(i, 2) = ab Or a(i, 2) = ac Then
atla:               b(say, 1) = 1
            End If
        End If
    Next i
    [AU1].Resize(say) = b
MsgBox "İşlem tamam...", vbInformation
End Sub
 
Alternatif makrolu çözüm.

Kod:
Sub test()
a = Range("AE1:AF" & Cells(Rows.Count, "AE").End(3).Row).Value
    ReDim b(1 To UBound(a), 1 To 1)
    u = [U2]: v = [V2]: w = [W2]:
    x = [X2]: y = [Y2]: Z = [Z2]:
    aa = [AA2]: ab = [AB2]: ac = [AC2]:
    For i = 1 To UBound(a)
        say = say + 1
        If a(i, 1) = u Then
            If v = "HEPSİ" Then GoTo atla
                If a(i, 2) = w Or a(i, 2) = x Or a(i, 2) = y Or a(i, 2) = Z _
                        Or a(i, 2) = aa Or a(i, 2) = ab Or a(i, 2) = ac Then
atla:               b(say, 1) = 1
            End If
        End If
    Next i
    [AU1].Resize(say) = b
MsgBox "İşlem tamam...", vbInformation
End Sub

teşekkürler.
 
Geri
Üst