Soru 12

12. sorumuzla devam edelim. Aşağıdaki gibi bir tablomuz var.

Sarı renkli hücreye formül ya da makro yazarak; tarih,araç tipi ve il seçtiğimizde uygun veriyi getireceğiz. Kolay gibi gelecek ama zorlanabilirsiniz 🙂

En azından nasıl yapılacağı hakkında yorumlarınızı yazın.

Dosyayı buradan indirebilir, cevaplarınızı yorum kısmına yazabilirsiniz.


CEVAP

Similar Posts

12 Comments

  1. {=MİN(EĞER(($A$2:$A$41=$I$2)*($C$2:$C$41=$K$2);KAYDIR($A$2;0;KAÇINCI($J$2;$B$1:$F$1;0);BAĞ_DEĞ_DOLU_SAY($A:$A)-1;1);””))}
    CTRL+SHIFT+ENTER ile dizi formülü şeklinde uygulanabilir

  2. {=KAYDIR($A$1;KAÇINCI($I$2&$K$2;$A:$A&$C:$C;0)-1;KAÇINCI($J$2;$B$1:$F$1;0))}

  3. Merhaba

    Formül ile,
    *Dizi formülüdür
    =DOLAYLI(ADRES(KAÇINCI(1;(A1:A41=I2)*(C1:C41=K2);0);KAÇINCI(J2;A1:F1;0)))

    Makro ile,

    Option Explicit
    Sub Uc_Kosullu_Ara_Bul()
    Dim dizi As Variant, son As Integer, x As Integer, aractipi As Byte

    son = Cells(Rows.Count, “A”).End(xlUp).Row
    aractipi = WorksheetFunction.Match([J2], Range(“D1:F1”), 0)
    Set dizi = Range(“D1:F” & son)

    For x = 1 To son
    If Cells(x, “A”) = [I2] And Cells(x, “C”) = [K2] Then _
    [L2] = dizi(x, aractipi)
    Next x

    Set dizi = Nothing
    son = Empty: x = Empty: aractipi = Empty
    End Sub

    1. Merhaba,
      Kodu, cevaba göre güncelledim.
      Tekrar eden tarihlerin toplamını alıyor.

      Option Explicit
      Sub Uc_Kosullu_Ara_Bul_Topla()
      Dim dizi As Variant, topla As Integer, son As Integer, x As Integer, aractipi As Byte

      son = Cells(Rows.Count, “A”).End(xlUp).Row
      aractipi = WorksheetFunction.Match([J2], Range(“D1:F1”), 0)
      Set dizi = Range(“D1:F” & son)

      For x = 1 To son
      If Cells(x, “A”) = [I2] And Cells(x, “C”) = [K2] Then _
      topla = topla + dizi(x, aractipi)
      Next x
      [L2] = topla

      Set dizi = Nothing
      son = Empty: x = Empty
      aractipi = Empty: topla = Empty
      End Sub

  4. önce bilgileri farklı sütunda =B2&D2&İNDİS($E$1:$G$1;0;KAÇINCI($K$2;$E$1:$G$1;0)) formülle birleştirdim daha sonra =DÜŞEYARA(J2&L2&K2;A:G;KAÇINCI(K2;A1:G1;0);0) formülle buldum. Ancak fiyat başlangıç, fiyat bitiş ve il verileri aynı olan veriler mevcut bunların toplamını istiyorsanız bu formül yanlış olur.

  5. başta formül ile yapmaya çalıştım olmadı. macroda ancak bu kadar yapabildim. tek sorun “Araç Tipi 1” deki verileri hücreye yazdıramıyorum.
    Sub Makro1()

    ‘ Makro1 Makro

    Dim tarih As Date
    Dim aractipi As String
    Dim fiyat As Integer

    tarih = Range(“I2”)
    aractipi = Range(“J2”)
    fiyat = Range(“L2”)

    ss = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To ss

    If tarih = Cells(i, 1) And Range(“K2”).Value = Cells(i, 3) Then

    If aractipi = “Araç Tipi 1” Then [L2] = Cells(i, 4)
    If aractipi = “Araç Tipi 2” Then [L2] = Cells(i, 5)
    If aractipi = “Araç Tipi 3” Then [L2] = Cells(i, 6)

    End If

    Next

    End Sub

  6. Sub deneme()
    For i = 2 To 41
    If Cells(2, 9) >= Cells(i, 1) And Cells(2, 9) <= Cells(i, 2) And Cells(i, 3) = Range("k2") Then
    If Cells(2, 10) = Range("d1") Then j = 4 Else If Cells(2, 10) = Range("e1") Then j = 5 Else j = 6
    Range("L2") = Cells(i, j)
    End If
    Next i
    End Sub

  7. Private Sub CommandButton1_Click()
    sonsatir = Cells(Rows.Count, “a”).End(xlUp).Row

    ReDim dizi_baslangic(sonsatir) As Variant
    ReDim dizi_bitis(sonsatir) As Variant
    ReDim dizi_sehir(sonsatir) As Variant

    For i = 2 To sonsatir
    dizi_baslangic(i) = Cells(i, 1)
    dizi_bitis(i) = Cells(i, 2)
    dizi_sehir(i) = Cells(i, 3)
    Next i

    For y = 2 To sonsatir
    For Z = 3 To 6
    If Range(“I2”) >= dizi_baslangic(y) And Range(“I2”) <= dizi_bitis(y) And Range("k2") = dizi_sehir(y) And Range("j2") = Cells(1, Z) Then
    Range("L2") = Cells(y, Z)
    End If
    Next Z

    Next y

    End Sub

  8. =EĞER(J2=”Araç Tipi 1 “;ÇOKETOPLA(D:D;C:C;K2;A:A;”=”&I2);
    EĞER(J2=”Araç Tipi 2″;ÇOKETOPLA(E:E;C:C;K2;A:A;”=”&I2);
    EĞER(J2=”Araç Tipi 3″;ÇOKETOPLA(F:F;C:C;K2;A:A;”=”&I2);”HATA”)))

  9. İyi akşamlar;
    =IF(J2=D1;SUMIFS(D2:D41;A2:A41;I2;C2:C41;K2);IF(J2=E1;SUMIFS(E2:E41;A2:A41;I2;C2:C41;K2);IF(J2=F1;SUMIFS(F2:F41;A2:A41;I2;C2:C41;K2))))

  10. =İNDİS(DOLAYLI(YERİNEKOY(ADRES(1;KAÇINCI(J2;1:1;0);4);1;””)&”:”&YERİNEKOY(ADRES(1;KAÇINCI(J2;1:1;0);4);1;””));KAÇINCI(I2&K2;A:A&C:C;0);0)

    2. YÖNTEME EKLEME YAPTIM, SUTUNLARI DİNAMİK YAPTIM.

  11. hocam ben böyle bişey yaptım ama
    =TOPLA((A2:A41=I2)*(C2:C41=K2)*(D1:F1=J2)*(D2:F41))

Bir yanıt yazın

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.