Düşey ara Detaylı (Düşeyara dolaylı formül gerek)

Katılım
16 Ocak 2010
Mesajlar
81
Excel Vers. ve Dili
Excel 2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2024
Merhaba,
İki adet excel dosyam var birinde bağımsız xlsx dosyası.
Veri.xlsx
Güncel.xlsx

Biri Veri dosyam.
veri.xlsx dosyasında, Sheet sheet Ocak 2017, Şubat 2017 diye gidiyor(bütün yıl var) Örnek Ocak 2017 Sheetinin, A sütünün da 01.01.2017 den aşağı doğru tarihler var. Tarihin yanında B sütününda çekmek istediğim veri var.

Bağımsız başka bir dosyadan (Güncel.xlsx) yapmak istediğim.

01.01.2017 yazdığım zaman Ay Ocak ise Ocak Sheetinde gitsin Ayın günü kaçsa sağındaki değeri getirsin istiyorum. 12.12.2017 yazarsam da aralık sheetine gidip 12. günün yanındaki veriyi getirsin istiyorum.
Bir çözümü var mıdır?
 
Son düzenleme:
Katılım
16 Ocak 2010
Mesajlar
81
Excel Vers. ve Dili
Excel 2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2024
=DÜŞEYARA(C59;'[veri.xlsx]Ocak'!$C$7:$S$37;2;0)

Yukarıdaki formülde Ocak sheetinde gidiyor.
=METNEÇEVİR(AY(C59);"aaaa") Bu şekilde Tarihten Ocak yazdırabiliyorum.
Ocak sheet ini değişken nasıl yaparım bu formülde acaba? Ay şubat, mart vs olunca da ilgili aya gitsin istiyorum.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bir dosya paylaşım sitesine örnek dosyanızı eklerseniz yardım almanız kolaylaşır.
 
Katılım
16 Ocak 2010
Mesajlar
81
Excel Vers. ve Dili
Excel 2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2024
Resimli olarak anlatmaya çalışayım;
iki farklı excel dosyası var birinde veri var, sheetler Ocak, şubat, mart diye aralık ayına kadar devam ediyor 12 sheet var.

Başka bir dosyadan düşey ara yapmak istiyorum.

01.01.2017 yazınca (ocak olduğu için ocak sheetine gidip ilgili tarihi getirecek
başka tarih yazarsam hangi aysa o aya gidip ilgili günü getirecek.

Bu işlemlerin hepsi 2017 yılı başka yıl yok.



 
Katılım
16 Ocak 2010
Mesajlar
81
Excel Vers. ve Dili
Excel 2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2024
Formül sonunda yaptım.

=(DÜŞEYARA(A1;DOLAYLI("'[VERİ.XLSX]"&B1&"'!"&"A:B");2))


Fakat dosya kapalıyken, yolunu yazıp çalıştırma imkanım var mıdır?
C:\dosya nın içindeyse.
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Makro ile yapılmış dosyanız ektedir

Kapalı çalışma kitabının sayfalarında arama yapan dosyanız ektedir,
Kod:
Sub deneme()
        Application.ScreenUpdating = False
        Dim sayfalar As Variant, i&, h&, kaynak$, son_satir&, aranan$, bul As Range
        sayfalar = Array("OCAK", "ŞUBAT", "MART")
        Sayfa1.Range("b2:b65536").ClearContents
        Sayfa1.Columns("a:a").NumberFormat = "@"
        kaynak = "VERİ.xlsx"
        Workbooks.Open ThisWorkbook.Path & "\" & kaynak
                               

        For i = 0 To UBound(sayfalar)
         Workbooks(kaynak).Sheets(sayfalar(i)).Columns("a:a").NumberFormat = "@"
            son_satir = ThisWorkbook.Sheets("Sayfa1").Range("a65536").End(3).Row
            For h = 1 To son_satir
            
                aranan = ThisWorkbook.Sheets("Sayfa1").Cells(h, 1).Value
                If aranan <> Empty Then

                    Set bul = Workbooks(kaynak).Sheets(sayfalar(i)).Range("a1:a65536").Find(aranan, LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)

                    If Not bul Is Nothing Then
                        ThisWorkbook.Sheets("Sayfa1").Cells(h, "B").Value = Workbooks(kaynak).Sheets(sayfalar(i)).Cells(bul.Row, "B").Value
                    End If
                End If
            Next h
        Next i
        Workbooks(kaynak).Close False
        Application.ScreenUpdating = True
            Sayfa1.Columns("a:a").NumberFormat = "m/d/yyyy"
        MsgBox "İşlem Tamamlandı.", vbInformation, "BİLGİ"
        Erase sayfalar: i = Empty: h = Empty: kaynak = Empty: son_satir = Empty: aranan = Empty: Set bul = Nothing
    End Sub
Not: tarih formatında iken arama yaptıramadım, her iki dosyada da önce a sütunlarını (tarihleri) metne çivirip, işlem bitiminde takrar tarih formatına çevirmek suteriyle sonucu ulaştım, uzman arkadaşlar kodları inceleyip tarih formatında iken arama yaptırabilirlerse bizde faydalanmış oluruz.

Tarihleri : sayfalar = Array("OCAK", "ŞUBAT", "MART", "NİSAN"..........)12. Aya kadar devam ettirirsiniz.
 

Ekli dosyalar

Son düzenleme:
Katılım
19 Temmuz 2016
Mesajlar
129
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
23-08-2020
Merhaba benim şöyle bir sorum olacaktı.

=DÜŞEYARA(A2;[Kitap1]Sayfa1!$A$2:$B$14;2;0)

Kırmızı ile belirttiğim yeri bir hücreden alsın istiyorum.

Örnek c2 hücresinde dosya adı yazacak ve makro ilgili dosyayı açıp düşeyara uygulayacak.
 

Korhan Ayhan

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

C2 hücresine aşağıdaki veriyi yazın.

Kod:
[Kitap1.xls]Sayfa1!$A$2:$B$14
Sonra bir modüle aşağıdaki kodu uygulayın.

Kod:
Sub TEST()
    Application.ScreenUpdating = False
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("Sayfa1")
    Yol = "C:\Users\Admin\Desktop\Kitap1.xls"
    Set K2 = Workbooks.Open(Yol)
    K1.Activate
    S1.Range("A5") = "=VLOOKUP(A2," & S1.Range("C2").Value & ",2,0)"
    K2.Close 0
    
    Application.ScreenUpdating = True
End Sub
Dosya yolunu ve isimlerini kendinize göre uyarlayıp kodu test edin.
 
Katılım
19 Temmuz 2016
Mesajlar
129
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
23-08-2020
Korhan Hocam tam istediğim şekilde olmuş. Teşekkürler.
 
Katılım
19 Temmuz 2016
Mesajlar
129
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
23-08-2020
Korhan Hocam

Eğer sayfa adında arada boşluk varsa çalışmıyor.

Örnek 15 şubat 2018.xlsx şeklindeki dosyada işlem yapmıyor. Boşlukları silince sorun yok.
 

Korhan Ayhan

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

Kod:
Sub TEST()
    Application.ScreenUpdating = False
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("Sayfa1")
    Yol = "C:\Users\Admin\Desktop\15 ŞUBAT 2018.xlsx"
    Set K2 = Workbooks.Open(Yol)
    K1.Activate
    Veri = Replace(Replace(S1.Range("C2").Value, "[", "'["), "!", "'!")
    S1.Range("A5") = "=VLOOKUP(A2," & Veri & ",2,0)"
    K2.Close 0
    
    Application.ScreenUpdating = True
End Sub
 
Katılım
19 Temmuz 2016
Mesajlar
129
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
23-08-2020
Merhabalar


Konu ile ilgili yardımlarınızı beklemekteyim. Kaç gündür kendim çözmeye çalışıyorum ama işin içinden çıkamadım.
 

Mkuzu

Altın Üye
Katılım
17 Aralık 2019
Mesajlar
1
Excel Vers. ve Dili
office 2016-türkçe
Altın Üyelik Bitiş Tarihi
17-12-2024
hocam formulu yazdım sayfanın birisinde doğru veriler geliyor birisinde farklı farklı veriler geliyor. ACİL YARCIMCI OLURMUSUNUZ
 

Ekli dosyalar

Üst