Excel çalışma sayfasını veritabanına almak: hazırlık, yöntem seçimi, kontrol
Excel verisini SQL Server veya MySQL'e aktarmanın yolları: dosya hazırlığı, sihirbaz, CSV üzerinden yükleme, tip tuzakları ve doğrulama.
Önce Excel dosyasını veritabanına uygun hale getirin
Excel serbest bir sayfadır; veritabanı tablosu ise sütunları belli, her satırı aynı yapıda bir kayıttır. Aktarımdaki sorunların büyük kısmı yapıların bu farkından çıkar. Aktarmaya başlamadan önce sayfayı şu şekilde sadeleştirin.
- Tek tablo kuralı: Sayfada üst başlık, özet kutuları, boş satırlar ya da altta toplam satırı varsa bunları ayırın. Veri tek bir başlık satırı ve altındaki kayıtlardan oluşmalıdır.
- Birleşik hücreler: Hücre birleştirmelerini kaldırıp her satırda değeri tekrarlayın. Birleşik hücre, aktarımda yalnızca ilk satıra değer taşır, diğerlerini boş bırakır.
- Tek tip sütun: Bir sütunda hem sayı hem metin karışık durmasın. Örneğin 'yok' ya da 'belirsiz' yazılmış tutar alanları sayısal sütunu bozar.
- Formüller: Aktarılacak alanların formül değil değer olması gerekir. Formül sonuçlarını değer olarak yapıştırın.
- Sütun adları: Boşluk, Türkçe karakter ve özel işaret içeren başlıkları veritabanında kullanılabilecek sade adlara çevirin.
- Gizli satır ve sütunlar: Aktarıma dahil olup olmadıklarını bilin; gizli kalan satırlar kayıt olarak gelebilir.
Bu temizlik, aktarım aracının ayarlarından daha çok sonucu belirler.
SQL Server için yöntemler
Microsoft'un dokümantasyonu SQL Server'a Excel verisi almak için birkaç yol sayar: doğrudan Excel'den alan araçlar (SQL Server Import and Export Wizard, SSIS, OPENROWSET ile dağıtık sorgular, bağlı sunucu) ve önce metne (CSV) dışa aktarıp sonra yükleyen araçlar (Import Flat File Wizard, BULK INSERT, bcp). Doğrudan Excel yöntemleri yalnızca şirket içi SQL Server için geçerlidir; dokümantasyona göre Azure SQL Database'e doğrudan Excel'den aktarım yapılamaz, önce veriyi CSV olarak dışa aktarmanız gerekir.
En erişilebilir yol SQL Server Management Studio içinden sihirbazdır: veritabanına sağ tıklayıp Tasks, ardından Import Data seçilir; kaynak olarak Excel dosyası, hedef olarak SQL Server seçilir, sayfa ya da aralık belirtilir ve sütun eşlemeleri kontrol edilir. Sihirbazın ayarlarını SSIS paketi olarak kaydedip daha sonra yeniden kullanabilirsiniz; bu, tekrarlanan işlerde değerlidir.
OPENROWSET ile doğrudan sorgu yönteminde, dokümantasyona göre Ad Hoc Distributed Queries sunucu ayarının açılması gerekir. Bu ayar güvenlik yüzeyini genişletir; kurumsal ortamda veritabanı yöneticisiyle birlikte karar verin. Çalışma kitabında birden çok sayfa varsa, belgede de belirtildiği gibi araçları genellikle her sayfa için ayrı çalıştırırsınız.
MySQL ve diğer sistemler için yol
MySQL'de genel kalıp, Excel sayfasını CSV olarak dışa aktarıp LOAD DATA ile (ya da yönetim aracınızın içe aktarma sihirbazıyla) yüklemektir. CSV'ye kaydederken Excel Türkçe ayarlarda noktalı virgül ayracı kullanabilir; yükleme komutunda aynı ayracı belirtmeniz gerekir. Kodlama konusunda da dosyanın hangi biçimde kaydedildiğine dikkat edin, çünkü Türkçe karakterler yanlış okunursa bozuk gelir.
PostgreSQL için de aynı mantık geçerlidir: sayfayı CSV'ye çevirip COPY ya da psql içindeki \copy ile yüklersiniz. CSV'ye çevirmenin en önemli yararı, dosya biçiminin düz metin olması ve aracın size ne yüklediğini açıkça görebilmenizdir. CSV yükleme komutlarının ayrıntıları için ilgili CSV rehberine bakabilirsiniz.
Bu yaklaşımın bedeli, CSV'ye çevirirken Excel'in bazı değerleri değiştirebilmesidir; sonraki bölümde bu tuzaklar ayrıntılı geçiyor.
Excel'e özgü veri tuzakları
Excel veriyi sizin adınıza yorumlar, aktarım sırasında bu yorumlar sorun çıkarır.
- Baştaki sıfırlar: Örneğin sıfırla başlayan bir telefon numarası ya da ürün kodu sayı sanılıp baştaki sıfırı kaybedebilir. Bu tür sütunları Excel'de metin biçimine alın ve veritabanında metin tipinde tanımlayın.
- Uzun sayılar: Çok basamaklı kimlik, barkod ve sipariş numaraları bilimsel gösterime dönüşebilir. Aktarımdan önce metne çevirin.
- Tarihler: Excel tarihleri aslında bir seri numarası olarak saklar; biçimi ekranda tarihe benzer gösterir. Aracın bu değeri tarih mi sayı mı olarak okuyacağı değişebilir. Gün-ay-yıl ve ay-gün-yıl karışıklığı da yerel ayar farkından doğar. Aktarımdan sonra tarih aralığına bakıp mantıksız değer olup olmadığını denetleyin.
- Ondalık ayracı: Virgülle yazılmış tutarın sayı olarak tanınması bölgesel ayara bağlıdır.
- Karma tipli sütun: Araçlar tipi genellikle ilk satırlara bakarak tahmin eder; sütunun ilerleyen satırlarında farklı tip varsa değer boş (NULL) gelebilir ya da hata alınır. Bu yüzden sessizce kaybolan değerleri satır sayısı ve boş değer sayımıyla yakalayın.
- Başında ya da sonunda boşluk: Görünmeyen boşluklar sonradan yapılan eşleştirmeleri bozar.
Ara tabloyla güvenli aktarım: örnek akış
Örneğin satış ekibi her ay bayilerden Excel formatında stok listesi topluyor ve bu listeleri veritabanına işlemek istiyor. Doğrudan üretim tablosuna yazmak yerine şu akış izlenebilir:
- Excel dosyası yukarıdaki hazırlık kurallarına göre düzenlenir.
- Veritabanında, tüm sütunları metin tipli bir ara tablo hazırlanır.
- Sihirbaz ya da CSV üzerinden dosya ara tabloya aktarılır; bu aşamada tip hatası beklenmez.
- SQL sorgularıyla ara tablo denetlenir: boş zorunlu alanlar, tekrar eden ürün kodları, dönüştürülemeyen sayılar ve tarihler listelenir.
- Temiz satırlar tip dönüşümüyle asıl tabloya INSERT ... SELECT ile taşınır, hatalı satırlar bayiye geri gönderilmek üzere ayrı tutulur.
- Son adımda ara tablo boşaltılır ve kaynak dosya, işlenen sürüm olarak arşivlenir.
Bu akış aynı ay tekrarlandığında yalnızca dosya değişir, adımlar aynı kalır. Süreç oturduktan sonra SSIS paketi ya da zamanlanmış bir betikle otomatikleştirebilirsiniz.
Aktarım sonrası doğrulama
Aktarım sonrası sonucu kaynakla karşılaştırmadan işi bitmiş saymayın.
- Kayıt sayısı: Excel'deki veri satırı sayısı ile tablodaki kayıt sayısı aynı mı?
- Toplam: Tutar ya da miktar sütununun Excel toplamı ile veritabanındaki SUM sonucu uyuşuyor mu?
- Boş değer: Beklenmeyen NULL sayısı var mı? Karma tipli sütunlarda sessiz kayıp en çok burada görülür.
- Örnek satırlar: Rastgele seçilmiş satırları kaynakla gözle karşılaştırın; özellikle tarih, sıfırla başlayan kod ve Türkçe karakter içeren alanları.
- Tekrarlar: Anahtar olması beklenen alanda mükerrer kayıt var mı?
Farklı bir sorun da Excel dosyasının kendisindedir: aynı veriyi herkes kendi kopyasında düzenliyorsa tek doğru kaynak ortaya çıkmaz. Aktarımı sürekli yapacaksanız dosya şablonunu sabitleyip bayilere ya da birimlere aynı şablonu kullandırmak, tüm bu hataların kaynağını azaltır.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
Microsoft Excel ile Veri Analizi Eğitimi - İleri Excel (Uygulamalı) programının modül başlıkları arasında Veri Bağlantıları ve Dış Veri Aktarma, Makro Programlama ve Otomasyon, İleri Seviye İşlevler ve İleri Tablo Yönetimi yer alır. Excel tarafında veriyi tablolaştırma ve dış kaynaklarla bağlantı kurma bu başlıkların konusudur. SQL ile Programlama Eğitimi ise Veritabanları Oluşturma, Tablolarla Çalışma, Veri İşleme Dili ve Sorgular başlıklarıyla veritabanı tarafını kapsar. Bu programlar birlikte, Excel ile çalışıp veriyi SQL'e taşımak zorunda kalan analist, raporlama ve operasyon ekipleri için tamamlayıcıdır.
İlgili Mindset programı
SQL ile Programlama Eğitimi
Sık sorulan sorular
Excel dosyasını doğrudan SQL Server'a aktarabilir miyim?
Şirket içi SQL Server'da evet: SQL Server Import and Export Wizard, SSIS ya da OPENROWSET gibi araçlar Excel dosyasını doğrudan okuyabilir. Azure SQL Database'de ise Microsoft dokümantasyonuna göre doğrudan aktarım yoktur, veriyi önce CSV olarak dışa aktarıp yüklemeniz gerekir.
Excel'deki baştaki sıfırlar neden kayboluyor?
Excel, sıfırla başlayan değeri sayı sanıp baştaki sıfırı atabilir. Telefon, ürün kodu ve benzeri alanlarda sütunu önceden metin biçimine alın, veritabanında da metin tipli bir sütuna aktarın. Sayısal tipli sütuna yüklerseniz sıfırları sonradan geri getirmek zorlaşır.
Çalışma kitabında birden çok sayfa varsa ne olur?
Aktarım araçları genellikle bir seferde tek sayfa ya da aralık okur. Birden çok sayfayı aktaracaksanız aracı her sayfa için ayrı çalıştırmanız gerekir. Sayfalar aynı yapıdaysa hepsini ara tabloya alıp tek tabloda birleştirmek ve kaynak sayfa adını ayrı bir sütunda saklamak pratik bir yoldur.
MySQL'e Excel'den aktarma için hangi yol önerilir?
Çoğu durumda sayfayı CSV olarak kaydedip LOAD DATA deyimiyle ya da yönetim aracının içe aktarma sihirbazıyla yüklemek yeterlidir. Kodlama ve ayracı doğru belirtmeniz, Türkçe karakterlerin ve ondalık sayıların bozulmamasının temel koşuludur.
Aktarımı her ay otomatik yapmak mümkün mü?
Evet. Sihirbazın ayarlarını SSIS paketi olarak kaydedebilir ya da CSV yükleme komutunu zamanlanmış bir betiğe bağlayabilirsiniz. Otomasyonun çalışması için dosya şablonunun sabit kalması, sütun adlarının ve sırasının değişmemesi gerekir; şablon değişirse paketi de güncellemeniz gerekir.
İlgili rehberler
İlgili eğitimler
Kategori: Veri Analitiği ve İş Zekası