• DİKKAT

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

  • Forum yazılımı güncelenmiştir.

    Beklenmedik durumlar görürseniz lütfen yönetime iletin.

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

  • Konbuyu başlatan Konbuyu başlatan atbarus
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Aralık 2010
Mesajlar
98
Excel Vers. ve Dili
2016 tr
Hocalarım merhaba,
Ekte dosyamda sayfa 1 Satır 1 başlığındaki verileri Sayfa 2 ye nasıl formüle edibiliriz. Başlıklar aynı ama yerleri değişik kopyala yapıştırla hata oluyor başlığa göre yapabilirmiyiz.
 
Merhaba,

Deneyiniz.

C++:
=DÜŞEYARA($A2;Sayfa1!$A:$J;KAÇINCI(B$1;Sayfa1!$1:$1;0);0)
 
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.
 
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
 
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?
 
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

  • 1768979521017.png
    1768979521017.png
    242.7 KB · Görüntüleme: 1
Son düzenleme:
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.
 
Sayın hocalarım formül çalışıyor veri olmayan hücrede #YOK yazıyor bunu nasıl 0 olarak gösterebiliriz.
 
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);)
 
Formülde dikkat ederseniz satır sabitlemesi yok. Bu sebeple formülü aşağı doğru sürüklerseniz çalışması gerekir.
Evet hocam daha sonraki denememde çalıştı ellerine sağlık olmayan sütunlarda #YOK yazıyor bunu nasıl 0 rakamına çevirebiliriz
 
Bir önceki mesajımda paylaştım.
 
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

Geri
Üst