• DİKKAT

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

Sutun başlığına göre veri çekme

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,539
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Deneyiniz.

C++:
=DÜŞEYARA($A2;Sayfa1!$A:$J;KAÇINCI(B$1;Sayfa1!$1:$1;0);0)
 
Katılım
17 Aralık 2010
Mesajlar
96
Excel Vers. ve Dili
2016 tr
Merhaba,

Deneyiniz.

C++:
=DÜŞEYARA($A2;Sayfa1!$A:$J;KAÇINCI(B$1;Sayfa1!$1:$1;0);0)
Hocam ellerine sağlık ama olmuyor. Mesela benim istediğim şuydu sayfa 1 B sutundaki veri sayfa 2 de H sütununda yer alıyor B2 de yer alan veriyi Başlığa göre H2'ye getirmesini istedim ben size zahmet tekrar bakabilirmisiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,539
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formülü Sayfa2 B2 hücresine uygulayıp sonrasında sağa doğru sürükleyiniz. A2 hücresine 9 yazıp sonucu gözlemleyiniz
 
Katılım
17 Aralık 2010
Mesajlar
96
Excel Vers. ve Dili
2016 tr
Formülü Sayfa2 B2 hücresine uygulayıp sonrasında sağa doğru sürükleyiniz. A2 hücresine 9 yazıp sonucu gözlemleyiniz
Hocam peki bunu çoklu satırda nasıl yapacağız ? Formülü aşşağıya çektiğimde hep aynı zannedersem A sütunu aşşağıya doğru artmıyor, sabitlemeyi kaldırsak bu seferde sağa doğru uzattığımızda bozuluyor, nasıl yapabiliriz?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,606
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Ben de zaten sorunuzu bu şekilde anlamıştım, çoklu satır olarak. VBA ile isterseniz aşağıdaki kodları bir modüle kopyalayıp deneyiniz.
Kodda görünen sayfa adını değil, sayfanın kod adını kullandım, siz de buna dikkat etmelisiniz.




Kod:
Public Sub Farklı_Sutunlara_Aktar()

Dim ar1 As Variant
Dim ar2 As Variant
Dim ar3 As Variant

Dim i   As Long
Dim j   As Integer
Dim k   As Integer

i = Sayfa1.Cells(Rows.Count, "A").End(3).Row
j = Sayfa1.Cells(1, Columns.Count).End(1).Column

ar1 = Sayfa1.Range("A1").CurrentRegion.Value
ar2 = Sayfa2.Range(Sayfa2.Cells(1, 1), Sayfa2.Cells(i, j)).Value

Sayfa2.Range("A1").CurrentRegion.Offset(1, 0).ClearContents

ReDim ar3(1 To j)

For i = 1 To UBound(ar2, 2)
    For j = 1 To UBound(ar2, 2)
        If ar2(1, i) = ar1(1, j) Then
            ar3(i) = j
            Exit For
        End If
    Next j
Next i

For i = 1 To UBound(ar1, 1)
    For j = 1 To UBound(ar1, 2)
        ar2(i, j) = ar1(i, ar3(j))
    Next j
Next i

Sayfa2.Range("A1").Resize(UBound(ar2, 1), UBound(ar2, 2)) = ar2

End Sub
 

Ekli dosyalar

Son düzenleme:
Katılım
17 Aralık 2010
Mesajlar
96
Excel Vers. ve Dili
2016 tr
Merhaba,
Ben de zaten sorunuzu bu şekilde anlamıştım, çoklu satır olarak. VBA ile isterseniz aşağıdaki kodları bir modüle kopyalayıp deneyiniz.
Kodda görünen sayfa adını değil, sayfanın kod adını kullandım, siz de buna dikkat etmelisiniz.




Kod:
Public Sub Farklı_Sutunlara_Aktar()

Dim ar1 As Variant
Dim ar2 As Variant
Dim ar3 As Variant

Dim i   As Long
Dim j   As Integer
Dim k   As Integer

i = Sayfa1.Cells(Rows.Count, "A").End(3).Row
j = Sayfa1.Cells(1, Columns.Count).End(1).Column

ar1 = Sayfa1.Range("A1").CurrentRegion.Value
ar2 = Sayfa2.Range(Sayfa2.Cells(1, 1), Sayfa2.Cells(i, j)).Value

Sayfa2.Range("A1").CurrentRegion.Offset(1, 0).ClearContents

ReDim ar3(1 To j)

For i = 1 To UBound(ar2, 2)
    For j = 1 To UBound(ar2, 2)
        If ar2(1, i) = ar1(1, j) Then
            ar3(i) = j
            Exit For
        End If
    Next j
Next i

For i = 1 To UBound(ar1, 1)
    For j = 1 To UBound(ar1, 2)
        ar2(i, j) = ar1(i, ar3(j))
    Next j
Next i

Sayfa2.Range("A1").Resize(UBound(ar2, 1), UBound(ar2, 2)) = ar2

End Sub
Teşekkürler hocam da ben bunu beceremem ben formülü her satıra manuel değiştirerek yapayım yine de çok teşekkür ederim.
 
Katılım
17 Aralık 2010
Mesajlar
96
Excel Vers. ve Dili
2016 tr
Sayın hocalarım formül çalışıyor veri olmayan hücrede #YOK yazıyor bunu nasıl 0 olarak gösterebiliriz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,539
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formülde dikkat ederseniz satır sabitlemesi yok. Bu sebeple formülü aşağı doğru sürüklerseniz çalışması gerekir.

Hata yerine 0 göstermesi için bu şekilde deneyiniz.

C++:
=EĞERHATA(DÜŞEYARA($A2;Sayfa1!$A:$J;KAÇINCI(B$1;Sayfa1!$1:$1;0);0);)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,606
Excel Vers. ve Dili
Ofis 365 Türkçe
Teşekkürler hocam da ben bunu beceremem ben formülü her satıra manuel değiştirerek yapayım yine de çok teşekkür ederim.
Ben soruyu sayfa2 deki sütun başlıkları nasıl yer değiştirirse değiştirsin o sırada listelensin olarak anladığım için kod önerisinde bulundum.

Örnek Dosya İçin TIKLAYINIZ
 

Ekli dosyalar

Üst