• DİKKAT

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

hem düşeyara hemde yatay ara

Katılım
26 Ocak 2018
Mesajlar
13
Excel Vers. ve Dili
excel 2016
arkadaşlar merhaba,

sizlere bir sorum olacak;

öncelikle oluştuğun bir mahal listem bulunmakta burada dikey olarak mahaller yatay olarak malzemeler sıralanmış, ilgli mahalde bulunan malzeme için "x" atılmış durumda,
örnek verecek olursak
oda1 için pvc olacaksa kesişimleri "x" gelmekte

örnek için resim

şimdi ben bu tablodan yararlanarak dikey olarak sıralanmış ve biden çok oda1 yazan yerlere ilgili malzemeyi formül ile getirmek istiyorum yazmak istiyorum.

olması gereken tablo

bu konuda =eğer formülü içinde dikey arada bulduğun satırda "x" varsa o satırın kesen alanda yatay ara yaparak bulduğunu tabloda belirtilen yere yaz

şeklinde mantıkloji yaptım. :)

daha doğrusu formulü çözemedim. ve bu konuda sizlerden yardım istemekteyim.

excel dosyası
 
Sorunuz halen güncelse Örnek dosyanızın linkini yenileyebilirseniz yardımcı olayım
 
Kaydır formülü işinizi görür.Forumda bir çok örnek bulunmaktadır.:cool:
 
Merhaba,

Formülü uzatmamak için ayrı ayrı veriyorum.

G2:
Kod:
=EĞERHATA(İNDİS(p_tablo!$I$2:$R$2;;KAÇINCI("x";KAYDIR(p_tablo!$I$3;KAÇINCI([@[MAHAL ADI]];p_tablo!$A$3:$A$1000;0)-1;0;;10);0));"")


H2:
Kod:
=EĞERHATA(İNDİS(p_tablo!$S$2:$W$2;;KAÇINCI("x";KAYDIR(p_tablo!$S$3;KAÇINCI([@[MAHAL ADI]];p_tablo!$A$3:$A$1000;0)-1;0;;5);0));"")


I2:
Kod:
=EĞERHATA(İNDİS(p_tablo!$B$2:$H$2;;KAÇINCI("x";KAYDIR(p_tablo!$B$3;KAÇINCI([@[MAHAL ADI]];p_tablo!$A$3:$A$1000;0)-1;0;;7);0));"")


K2:
Kod:
=EĞERHATA(İNDİS(p_tablo!$X$2:$Z$2;;KAÇINCI("x";KAYDIR(p_tablo!$X$3;KAÇINCI([@[MAHAL ADI]];p_tablo!$A$3:$A$1000;0)-1;0;;3);0));"")

.
 
Ömer bey , tam olması gibi olmuş. "Kaydır" girdisinin böyle kullanılabileceği aklıma gelmemişti. Fakat diğer bir sorun aynı grup içinde birden fazla "x" olursa bunu nasıl birleştirerek hücreye yazdırabilirim ona kafa yoruyorum şuan. Desteğiniz olursa çok sevinirim.
 
Böyle bir durum varsa makro kullanılması daha doğru olacaktır.
 
Deneyiniz.
Kod:
Sub aktar()

    Dim a As Byte, dizi(), St As Worksheet, Sp As Worksheet, son As Long, j As Byte, s As Byte
    Dim i As Long, c As Range, Adr As String, deg As String, b As Range 
 
    Set St = Sheets("tablo1")
    Set Sp = Sheets("p_tablo")
 
    son = St.Cells(Rows.Count, "D").End(xlUp).Row
 
    Application.ScreenUpdating = False
 
    Sp.Select
    For j = 7 To 11
        Set c = Rows(1).Find("*" & St.Cells(1, j) & "*")
        If Not c Is Nothing Then
            ReDim Preserve dizi(a)
            c.Select
            dizi(a) = Selection.Address
            a = a + 1
        End If
    Next j

    For i = 2 To son
        s = 0
        Set c = [A:A].Find(St.Cells(i, "D"), , xlValues, xlWhole)
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                For j = 7 To 11
                    If j <> 10 Then
                        For Each b In Range(Replace(dizi(s), 1, c.Row))
                            If UCase(b.Value) = "X" Then
                                deg = deg & " | " & Cells(2, b.Column)
                            End If
                        Next b
                        St.Cells(i, j) = WorksheetFunction.Substitute(deg, " | ", "", 1)
                        s = s + 1: deg = ""
                    End If
                Next j
                Set c = [A:A].FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    Next i
 
    St.Select
 
End Sub

 

Ekli dosyalar

Geri
Üst