Soru 14

14. sorumuzla devam edelim.

Aşağıdaki gibi bir tablomuz var.

Farklı ürünlerin, farklı tarihlerdeki satın almalarına ilişkin satın alma tutarları bulunuyor. Burada seçilen ürünün, en düşük satın alma fiyatının tarihi isteniyor.

Dosyayı buradan indirebilir, cevaplarınızı yorum olarak yazabilirsiniz.


CEVAP

=MİN(EĞER(C2:C51=MİN(EĞER(A2:A51=F5;C2:C51));B2:B51))

Dizi formülüdür. Ctrl Shift Enter yapmayı unutmayın.

Similar Posts

16 Comments

  1. =İNDİS($B2:$B51;KAÇINCI(ÇOKEĞERMİN($C$2:$C$51;$A$2:$A$51;$F$5);$C$2:$C$51;0);0)

  2. =İNDİS($A$2:$C$51;KAÇINCI(MİN(FİLTRE(A2:$C$51;A2:$A$51=$F$5));C2:$C$51;0);2)

  3. Sub fiyatbul()
    ‘TANIMLAMA
    Dim satirsayisi As Integer
    Dim a As Integer
    Dim dusukfiyat As Integer
    Dim fiyat As Integer
    Dim tarih As Date

    a = 2
    fiyat = 0

    ‘SON SATIRI BULMA
    satirsayisi = Sheets(“Sayfa1”).UsedRange.Rows.Count

    ‘SON SATIRA KADAR KONTROL EDEN DÖNGÜ
    For a = 2 To satirsayisi

    ‘KONTROL EDİLEN SATIRIN İLK HÜCRESİ İLE GİRİLEN DEĞER AYNI MI?
    If Sheets(“Sayfa1”).Cells(a, 1) = Sheets(“Sayfa1”).Cells(5, 6) Then

    ‘iLK EŞLEŞME KONTROLÜ, FİYAT VE TARİH BELİRLEME
    If fiyat = 0 Then

    fiyat = Cells(a, 3)
    dusukfiyat = fiyat
    tarih = Cells(a, 2)

    End If

    ‘2 VE SONRAKİ ÜRÜN EŞLEŞMELERİNDE DÜŞÜK FİYAT KONTROLÜ VE TARİHİNİN BELİRLENMESİ

    fiyat = Cells(a, 3)

    If fiyat 0 And fiyat < dusukfiyat Then

    dusukfiyat = fiyat
    tarih = Cells(a, 2)

    End If

    End If

    Next

    'TARİHİN İLGİLİ HÜCREYE YAZILMASI

    Cells(6, 7) = tarih

    'ÜRÜN İSMİ DOĞRU DEĞİLSE KONTROL TALEP ETME

    If tarih = 0 Then

    MsgBox ("ÜRÜN İSMİNİ DOĞRU GİRDİĞİNİZDEN EMİN OLUN")
    Cells(6, 7) = ""

    End If

    End Sub

  4. Dizi formülü,

    =İNDİS($B$1:$B$51;KAÇINCI(MİN(EĞER(A1:A51=F5;C1:C51));EĞER(A1:A51=F5;C1:C51);0))

    Makro,

    Sub dusukk()

    Range(“G6”).ClearContents

    Set con = VBA.CreateObject(“adodb.Connection”)

    con.Open “provider=microsoft.ace.oledb.12.0;data source=” & _
    ThisWorkbook.FullName & “;extended properties=””Excel 12.0;hdr=yes”””

    sorgu = “select top 1 [Satın Alma Tarihi] from[sayfa1$] where ” & _
    “Ürünler = ‘” & Sayfa1.Range(“f5”) & “‘ order by [Satın Alma Fiyatı] asc”

    Set rs = con.Execute(sorgu)
    Range(“G6”).CopyFromRecordset rs

    End Sub

  5. Merhaba,
    *Dizi Formülüdür
    =KAYDIR(A1;KAÇINCI(F5&MİN(EĞER((F5=A2:A51);C2:C51));A2:A51&C2:C51;0);1)

  6. =İNDİS($B$2:$B$51;KAÇINCI($F$5&MİN(EĞER($A$2:$A$51=$F$5;$C$2:$C$51;””));$A$2:$A$51&$C$2:$C$51;0))

    dizi formülü şeklinde ctrl+shift+enter ile yazılmalı

  7. =İNDİS($B:$B;KAÇINCI(ÇOKEĞERMİN($C:$C;$A:$A;$F$5);$C:$C;0);0)

  8. =+İNDİS($A$2:$C$51;KAÇINCI($F$5&MİN(EĞER($A$2:$A$51=$F$5;$C$2:$C$51));$A$2:$A$51&$C$2:$C$51;0);2)

  9. Hocam merhaba,

    Verdiğiniz formül hatalı. Ürün10’un en küçük değeri olan 110 değerini , C2 satırına yazarsanız, ürün10 için en küçük tarih 1 mayıs çıkacatır. Doğru sonucun 5 mayıs olması lazım.Yazdığınız formül listedeki en küçük değerin sahip olduğu, en küçük tarihi getiriyor.

    1. Formül doğru çalışıyor. 5 mayıs tarihini getiriyor. Zaten sorduğum şey bu.

  10. Sub deneme()
    m = Application.WorksheetFunction.Max(Range(“c:c”))
    For i = 2 To 51
    If Cells(i, 1) = Range(“f5”) Then
    If Cells(i, 3) <= m Then
    m = Cells(i, 3)
    c = Cells(i, 2)
    End If
    End If
    Next i
    Range("g6") = c
    End Sub

  11. dizi formülüdür

    =ARA(2;1/(MİN(EĞER($A$2:$A$51=$F$6;$C$2:$C$51;””))=$C$2:$C$51);$B$2:$B$51)

  12. Mustafa hocam selamlar,

    Kimse yeni formülleri kullanmamış. Ben daha kısa yoldan ve Ctrl Shift Enter olayına girmeden aşağıdaki gibi çözdüm.

    Saygılarımla.

    =FİLTRE(B2:B51;C2:C51=ÇOKEĞERMİN(C2:C51;A2:A51;F5))

    1. Ben kullanmıştım aslında en yukarıdaki ilk çözümüm de :))

Murat için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.