hem düşeyara hemde yatay ara

Katılım
26 Ocak 2018
Mesajlar
13
Excel Vers. ve Dili
excel 2016
Altın Üyelik Bitiş Tarihi
22-03-2023
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ı
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,695
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sorunuz halen güncelse Örnek dosyanızın linkini yenileyebilirseniz yardımcı olayım
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Kaydır formülü işinizi görür.Forumda bir çok örnek bulunmaktadır.:cool:
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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));"")
.
 
Katılım
26 Ocak 2018
Mesajlar
13
Excel Vers. ve Dili
excel 2016
Altın Üyelik Bitiş Tarihi
22-03-2023
Ö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.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Böyle bir durum varsa makro kullanılması daha doğru olacaktır.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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

Üst