Farklı Çalışma Kitaplarından Gelen Verilerin Tek Bir Tabloda Birleştirilmesi
Birden fazla Excel dosyasını tek bir dosyada birleştirmenin en hızlı ve güvenilir yolu Power Query aracını kullanmaktır (Excel 2016, 2019, 2021 ve Microsoft 365 sürümlerine dahildir). Bu araç, yapıları biraz değişse bile tek bir klasördeki tüm dosyalardan verileri otomatik olarak çekmenize ve özet tabloyu tek bir düğmeyle güncellemenize olanak tanır. Tek seferlik görevler için sayfaların basitçe kopyalanması, karmaşık senaryolar için ise VBA makroları uygundur.
Yöntem seçimi; Excel sürümüne, dosya sayısına ve verilerin güncellenme sıklığına bağlıdır. Aşağıda, en modern olandan klasik olana doğru üç ana yöntem ele alınmaktadır.
Kısa cevap: Excel 2016 veya daha yeni bir sürüm kullanıyorsanız, «Veri» sekmesi → «Veri Al» → «Dosyadan» → «Klasörden» yolunu izleyin. Programlama bilgisi gerektirmeden verileri toplamanın en hızlı yolu budur.
Yöntem 1: Power Query (Önerilen Yöntem)
Bu yöntem, aynı yapıya sahip çok sayıda dosyanız varsa (örneğin, aylık satış raporları) ve bunları düzenli olarak güncellemek istiyorsanız idealdir.
Dosyaların Hazırlanması
- Bilgisayarınızda ayrı bir klasör oluşturun.
- Birleştirilecek tüm Excel dosyalarını bu klasöre yerleştirin.
- Dosyalardaki verilerin aynı sütun başlıklarına sahip olduğundan ve ilk sayfalarda bulunduğundan emin olun.
Adım Adım Talimatlar (Excel 2016, 2019, 2021, 365)
- Boş bir Excel çalışma kitabı açın.
- Veri (Data) sekmesine gidin.
- Veri Al (Get Data) → Dosyadan → Klasörden seçeneğine tıklayın.
- Dosyaların bulunduğu klasörün yolunu belirtin ve Aç'a tıklayın.
- Açılan önizleme penceresinde Verileri Dönüştür (Transform Data) veya Birleştir (Combine) düğmesine tıklayın.
- «Birleştir»e tıkladıysanız: Verileri içeren sayfayı seçin ve Tamam'a tıklayın. Power Query tüm dosyaları otomatik olarak toplayacaktır.
- «Verileri Dönüştür»e tıkladıysanız: Power Query düzenleyicisi açılır. Gerekli verileri seçmek için
Contentsütununu genişletmeniz gerekebilir (sütun başlığındaki iki ok simgesine tıklayarak).
- Düzenleyicide veri türlerini (sayılar, tarihler, metin) kontrol edin. Gerekirse fazla sütunları silin (örneğin, raporda dosya adına ihtiyaç yoksa
Namegibi sistem sütununu). - Sol üst köşedeki Kapat ve Yükle (Close & Load) düğmesine tıklayın.
Sonuç olarak, tüm dosyalardaki verileri içeren Excel sayfasında yeni bir tablo oluşturulacaktır.
Veriler nasıl güncellenir: Klasöre yeni dosyalar eklendiğinde veya eski dosyalar değiştirildiğinde, elde edilen tabloya sağ tıklayıp Yenile seçeneğini belirlemeniz yeterlidir. Excel, klasördeki tüm dosyaları otomatik olarak yeniden okuyacaktır.
Excel 2010 ve 2013 İçin
Bu sürümlerde Power Query varsayılan olarak dahil değildir. Microsoft'un resmi web sitesinden Microsoft Power Query for Excel eklentisini indirip kurmanız gerekir. Kurulumdan sonra işlem adımları benzerdir: Power Query sekmesi → Dosyadan → Klasörden.
Yöntem 2: Sayfaları Taşıma ve Kopyalama (Tek Seferlik Görevler İçin)
Eğer az sayıda dosya varsa (3–5 adet) ve bunları yalnızca bir kez birleştirmeniz gerekiyorsa, sayfaları manuel olarak kopyalamak en kolay yoldur. Bu yöntem biçimlendirmeyi ve formülleri korur ancak verilerin tek bir tabloda otomatik olarak toplanması için uygun değildir.
- Birleştirilecek tüm dosyaları ve hedef olarak kullanılacak boş bir dosyayı açın.
- Kaynak dosyada, taşınacak sayfanın sekmesine sağ tıklayın.
- Taşı veya Kopyala (Move or Copy) seçeneğini belirleyin.
- Kitap (To book) alanında hedef dosyayı seçin.
- Orijinal dosyayı değiştirmeden bırakmak istiyorsanız Kopya oluştur (Create a copy) kutusunu işaretleyin.
- Tamam'a tıklayın.
Gerekli tüm sayfalar için bu işlemi tekrarlayın.
Yöntemin Dezavantajları:
- Veriler tek bir ortak tabloda değil, farklı sayfalarda kalır.
- Çok sayıda dosya olduğunda süreç rutin hale gelir.
- Veriler farklı sayfalara dağılmışsa, özet tablolarla analiz yapmak zordur.
Yöntem 3: VBA Makrosu (İleri Düzey Kullanıcılar İçin)
Dosyaları sık sık birleştirmeniz gerekiyorsa ve Power Query mevcut değilse veya mantıksal olarak uygun değilse, makro kullanabilirsiniz. Bu betik, seçilen klasördeki her çalışma kitabının ilk sayfasındaki verileri etkin çalışma kitabına kopyalar.
- VBA düzenleyicisini açmak için
Alt + F11tuşlarına basın. - Menüden Insert → Module seçeneğini belirleyin.
- Aşağıdaki kodu yapıştırın:
Sub MergeExcelFiles()
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Dim LastRow As Long
Dim DestSheet As Worksheet
Dim WB As Workbook
' Hedef sayfanın ayarlanması
Set DestSheet = ThisWorkbook.Sheets(1)
' Klasör seçimi
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Excel dosyalarının bulunduğu klasörü seçin"
If .Show = -1 Then
FolderPath = .SelectedItems(1) & "\"
Else
Exit Sub
End If
End With
Application.ScreenUpdating = False
Filename = Dir(FolderPath & "*.xls*")
Do While Filename <> ""
If Filename <> ThisWorkbook.Name Then
Set WB = Workbooks.Open(FolderPath & Filename)
' İlk sayfadaki verileri kopyalama
' DestSheet'te başlıkların zaten olduğunu varsayıyoruz, bu yüzden ikinci satırdan kopyalıyoruz
' Başlıklar dahil her şeyi kopyalamak istiyorsanız mantığı değiştirin
LastRow = DestSheet.Cells(DestSheet.Rows.Count, 1).End(xlUp).Row + 1
' Kullanılan aralığı kopyalama
WB.Sheets(1).UsedRange.Copy Destination:=DestSheet.Cells(LastRow, 1)
WB.Close SaveChanges:=False
End If
Filename = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Dosyalar başarıyla birleştirildi!", vbInformation
End Sub
- VBA düzenleyicisini kapatın.
- Makroyu Geliştirici → Makrolar → MergeExcelFiles yoluyla çalıştırın.
Önemli: Makroyu çalıştırmadan önce çalışma kitabını Makro Etkin Excel Çalışma Kitabı (.xlsm) olarak kaydedin. Tüm kaynak dosyalardaki verilerin A1 hücresinden başladığından ve sütun yapılarının aynı olduğundan emin olun.
Birleştirme Yöntemlerinin Karşılaştırılması
| Yöntem | Excel Sürümleri | Kurulum Zorluğu | Otomatik Güncelleme | En İyi Kullanım Alanı |
|---|---|---|---|---|
| Power Query | 2010+ (eklenti ile), 2016+ (dahili) | Orta | Evet («Yenile» düğmesi) | Düzenli raporlama, büyük veri hacimleri |
| Sayfa Kopyalama | Tüm sürümler | Düşük | Hayır | Tek seferlik görevler, az sayıda dosya |
| VBA Makrosu | Tüm sürümler (makro desteği ile) | Yüksek | Hayır (yeniden çalıştırma gerekir) | Tam kontrol gerektiren özel görevler |
Birleştirme Sırasındaki Sık Yapılan Hatalar
- Farklı sütun yapıları. Bir dosyada «Tarih» sütunu «Date», diğerinde «İşlem Zamanı» olarak adlandırılmışsa, Power Query iki farklı sütun oluşturur.
- Çözüm: Birleştirmeden önce tüm dosyaların başlıklarını tek bir biçime getirin.
- Kaynak dosyalardaki fazla satırlar ve toplamlar. Raporların sonunda genellikle «Toplam» satırları veya boş satırlar bulunur.
- Çözüm: Power Query'de boş değerleri veya «Toplam» kelimesini içeren satırları elemek için filtre kullanın.
- Sayıların metin olarak biçimlendirilmesi. İçe aktarma sırasında sayılar metne dönüşebilir (hücrede yeşil üçgen görünür).
- Çözüm: Power Query düzenleyicisinde ilgili sütunlar için veri türünü açıkça «Sayı» veya «Ondalık Sayı» olarak ayarlayın.
- Dosya kilitleme. Kaynak dosyalardan biri «Salt Okunur» modunda açıksa veya başka bir kullanıcı tarafından kilitlenmişse, içe aktarma hata ile sonlanabilir.
- Çözüm: Sorguyu güncellemeden önce tüm kaynak dosyaları kapatın.
SSS
Farklı klasörlerde bulunan dosyaları birleştirebilir miyim? Evet, Power Query'de birden fazla klasör kaynağı ekleyebilir veya dosyalara ağ üzerinden erişilebiliyorsa «Web Kaynağından» seçeneğini kullanabilirsiniz. Ancak en kolayı, gerekli tüm dosyaları tek bir dizinde toplamaktır.
Dosyalarda farklı sayıda sütun varsa ne yapmalıyım?
Power Query varsayılan olarak sütunları isimlerine göre eşleştirir. Herhangi bir dosyada bir sütun eksikse, nihai tabloda bu satırlar için null (boş) değerler görüntülenir. Bu normal bir davranıştır.
Çalışma kitaplarından yalnızca belirli sayfaları nasıl birleştiririm? Power Query düzenleyicisinde, verileri dönüştürme aşamasında sayfa listesini filtreleyebilirsiniz. «Birleştir» adımında, «İlk Sayfa» yerine isme göre belirli bir sayfa seçme seçeneğini belirleyin.
VBA makrosu neden verileri hatalı kopyalıyor?
Kaynak dosyalarda birleştirilmiş hücreler veya gizli satırlar olup olmadığını kontrol edin. Makro, daha önce veri içeriyorsa boş hücreleri de kapsayabilen UsedRange (kullanılan aralık) kopyalar. Kaynaklardaki fazlalıkları temizleyin veya son satırı hassas bir şekilde belirlemek için kodu geliştirin.