Power BI’da, Veri Kaynağı Excel olanların dikkat etmesi gerekenler!

Satış, Üretim, Finans, hangi raporu geliştiriyor olursak olalım, illa ki bir noktada “ya bu veri Database’de yok, Excel’le vereceğiz, oradan almalısınız diyen firmalar oluyor. O halde,
Power BI raporumuzun veri kaynakları arasında Excel varsa, sağlıklı bir “proje süreci ve proje sonrası” yaşayabilmek için doğrudan Excel Sheetlerine bağlanmamalıyız! “Dinamik alanlara dönüştürülmüş veri aralıklarına” yani Excel Tablolarına bağlanmayı tercih etmeliyiz. Peki Neden?


1) Performans!


Herşeyden önce, Excel 1.048.576.satırdan ve 16,384 sütundan oluşuyor. Biz bağlanırken kaynak olarak doğrudan Sheet adı seçtiğimizde bu kocaman alanı refere etmiş olurken, tabloya bağlandığınızda sadece gerçek satır&sütun sayımız ne kadarsa o kadarlık alanı refere etmiş oluruz. Yani eğer Sheet’e bağlanırsak, Refresh anında 5.000 satıra bak demek varken, 1 milyon satıra bak demiş oluruz. Bir iki tane Excel ile çalışırken buradaki performans düşüklüğü hissedilmeyecektir ama yine de Power BI’a nasıl bir iş emri verdiğimizi bilmemizde fayda var. Ola ki bir sürü Excel eklemeniz gereken bir proje ile karşılaşırsanız bu bilgi performans açısından çok işinize yarayacak

2) NULL satırlar, Blank() seçenekli Slicer’lar !

Sheet’lere bağlandığımızda “bazen” verilerin altındaki o boş satırlar Power BI tarafından da görünür ve bu da rapor oluştururken grafiklerde NULL değerlerini çıkmasına sebep olur. Diğer yandan da rapora bakanların en sevmediği şey olan, Slicer’lerdaki Blank() seçeneğinin çıkmasına sebep olur. Her seferinde Blank’leri gösterme diye filtre uygulamak zorunda kalırız.

Eğer tablo yapılmış haline bağlanırsak, sadece ve sadece tablolanmış verilerimizi görür ve onlarla işlem yapar.

Resim 1 – Null Satırlar
Resim 2- Blank()

3) Fazla satır sayısı!

CountRows ile tablo satır sayısı saydırdığımız durumlarda tablonun satır sayısı yanlış gelir Anlamsız biçimde bir eksik, bir fazla bile geldiği olabilir. Yukardaki tabloda 25 satır değer var ama bakın aşağıda measure 29 satır sayıyor. Tabii ki CountRowsla oynayıp doluları say diyebiliriz. Ama önce bu hatayı yakalamış olmamız gerekiyor. Zor olan tarafta bu zaten.

Resim 3 – Yanlış Satır Sayısı

4) Fazla toplam değerleri, veri tipi uyuşmazlığı!

Çoğunlukla Excel’de esas verilerin sağına, soluna ya da en altına ekstra toplamlar, notlar alındığını görürüz.  Power BI’a direkt Sheetleri bağladığımızda orjinal veri listemizden bağımsız olan etrafraki veriler de Power BI’a veri olarak çekilmiş olur.  Bu nedenle etraftaki datalar yüzünden, fazla toplamlar, fazla satır sayıları, veri tipi uyuşmazlığı gibi beklenmedik hatalarla karşılaşırız.

5) Başlıkların başlık olarak gelmemesi.

Power BI ile Excel Sheet’ine bağlanırsak, Power BI sütun başlıklarını tanımayabilir. Evet, bir çözüm yolu var.  “ Use First Row as Headers” ile ilk satırı başlık olarak ayarlayabiliriz. Ama neden bununla uğraşalım ki, hadi biz bir kere yaptık diyelim. Ya Power BI?  O ise, her veri çektiğinde bu işlemi yapmak zorunda kalacak.

Resim 4 – Tanımlanmayan Sütun Başlığı

Resim 5 – ilk satırın başlık olarak tanımlanması

6) Değiştirilen Sheet isimlerinin sebep olduğu Refresh hataları

Süreç içerisinde, kullanıcılar bazen Power BI tarafını düşünmeden, kaynak Excel’lerdeki Sheet isimlerini değiştirirler. Bu durumda Power BI raporu refresh olurken daha önceden bağlandığı hafızasındaki Sheet adını bulamadığı için hata verir. Bu durumda, hiç beklenmedik bir anda “Rapor Refresh olmuyor” hatası alıp Power BI içinden data kaynağını düzenlemekle uğraşmak zorunda kalırız.

Tablo’ya bağlanırsak bu sorunlar yaşanır mı?

Eğer tablo’ya bağlandıysak, bu saydığımız problemlerin hiç biri ile karşılaşmayız. Son maddeden pay biçecek olursak, Sheet adı değişse bile Power BI tablo adına göre çalıştığı için bu değişimden etkilenmez.  Ayrıca birisinin tablo adını yanlışlıkla değiştirme ihtimali, Sheet adını değiştirme ihtimalinden kat be kat küçüktür. Yani tablo ile daha güvenli alandasınız.

Excel verileri, Tabloya nasıl dönüştürülür?

Excel’de veri aralığını sectikten sonra ya da veri aralığının içinde bir hücreye tıkladıktan sonra Home sekmesi/Format as Table butonuna basarak statik veri aralığını, dinamik veri aralığına yani Tabloya dönüştürebiliriz. 

Resim 6 – Tabloya Dönüştüme – Format as Table

Veri aralığı tabloya dönüştükten sonra bu verilerin hemen altına ya da hemen yanına eklenen verilere otomatik olarak tabloya dahil edilir. Her seferinde tablo aralığını değiştirmek zorunda kalmazsınız.

Excel Tablolara rastgele olarak Tablo1 gibi bir isimlendirme yapar. Böyle hangi verileri içerdiği anlaşılmayacağı için mutlaka adı degiştiririz. Tablo içerisinde herhangi bir hücre seçili iken, Table Tools sekmesi görünür hale gelir. Buradan Table Name kutusundan tablomuza en anlamlı ismi veririz ve Enter’a basarız.
Örnegin FactSatislar, DimUrunler gibi.
Mağaza, personel, ürün bilgileri gibi eşsiz “bilgi” tablolarınıza Dimension’dan gelen Dim; satışlar ya da üretim gibi ağırlıkla sayısal verilerimizi içeren hareket tablolarınıza kısaca Fact kısaltması ekleyebiliriz diyelim simdilik. Bu kavramları bilmeniz ve kullanmanız Power BI’da veri modeli üzerinde çalışırken kolayca ilerlemenizi sağlayacaktır.

Bu şekilde tablo oluşturduktan sonra, aynı Excel’e bir daha bağlandığınızda, aşağıdaki gibi hem tabloları hem de sayfaları göreceksiniz. Hangisine bağlanmanız gerektiğini çok iyi biliyorsunuz 🙂

Resim 7 – Table vs Sheet

BONUS

Eğer 3000 satırı aşmayan bir listeyi Power BI raporunuza ekleyebilmek için Excel kullanıyorsanız, alternatif bir yolunuz daha var. Enter Data! Onu buradaki yazıda bulabilirsiniz.

Faydalı Olmasını Umarım.

Sevgiler