» » Soru 12

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

Categories: SoruYorum

12 Responses

  • {=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

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

  • 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

    • 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

  • ö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.

  • 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

  • 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

  • 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

  • =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”)))

  • İ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))))

  • =İ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.

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

X