Json'dan Excel Tablosuna Dönüştürmek - Excel Power Query

Excel Power Query, farklı formatlardaki veri kaynağında bulunan verinin, üzerinde düzenlemeler yaptıktan sonra tablo oluşturulabilmesini sağlayan MS Office Excel eklentisidir.

Bu makalede; Json verisini kullanarak, kullanıcının anlayabileceği bir tablo yapısına dönüştürme yöntemlerine değinilecektir. 

Makaleyi yazmamdaki motivasyonum; yazılım geliştiren birisiyim ve iş birimi, benden çalıştığım projeye ait kayıtları excel olarak istedi. İstenen veriler, ilişkili ve iç içe verilerden oluşmaktadır. (Recursive and nested data)

Kompleks Sql sorguları ile uğraşmanın vakit kaybı olacağını öngördüğümden veriyi Json formatında elde ettikten sonra iş birimlerine anlamlı bir yapıda sunmak için kullandığım bir tekniktir. 

Bu teknik, Sql sorguları ile harcayacağım zamandan tasarruf etmemi ve kolay bir şekilde veriyi analiz etmemi sağladı.

Yazılım geliştiren kişilerin, exceli temel seviyede kullanabilmesi gerektiğini düşünüyorum.

Veride Çalışmaya Başlayalım :)

Aşağıdaki Json dosyasını ele alalım. Oldukça basit değil mi?


Json stringi, exceldeki bir hücreye yapıştırılır. 


"Tablodan Aralık" tan butonuna tıkladıktan sonra ilgili hücre seçili olacak ve Tamam butonuna tıklanır.



Tamam butonuna tıklandıktan sonra Power Query eklentisinin ekranı açılır.


"Dönüştür - Transform" sekmesine tıklanıp "Ayrıştırma- Parse" alanına tıklanıp "JSON" seçilir. Bu şekilde ilgili stringin JSON parse yöntemiyle ayrıştırılması sağlanacaktır.



Genişletmeyi yaptıktan sonra Json stringindeki users propertisinin değeri olan listeye ulaşılır.

Listenin detayına ulaşıp, excelde satırları oluşturmaya başlamak için "Yeni Satırlara Genişlet" sekmesine tıklanır.


Tıklama işlemi sonrasında "users" listesinde üç adet kayıt olduğu görülmektedir. "Record" listenin bir elemanını belirtir. Detayına da "Record" yazısının yanındaki boşluğa tıklanarak aşağıdaki gibi görülmektedir. 


Detaya bakıldığında da üzerinde çalışılan Json'deki "users" listesinin ilk elemanı görünmektedir. 


Verinin oluşturmuş hali aşağıdaki gibidir. 


Filtreleme ve isim değiştirme işlemleri excel işlemlerinden aşina olunan özelliklerdir.



Verinin excel tablosuna taşınması için "Kapat ve Yükle - Close and Load" butonuna tıklanmalıdır.




Sonradan bu veri kaynağında düzenleme yapabilmek için "Sorgular ve Bağlantılar - Queries and Connections" alanından aşağıdaki gibi Düzenle butonuna tıklanarak eklenti ekranı açılır.


Daha detaylı veriler için ne yapılabilir?

Aşağıdaki Json verisinde iç içe (nested) veriler olabilir. Bağlı listeler, recursive yapılar, ilişkili veriler bu yapıda bulunan senaryo örnekleridir.


Bu sefer farklı bir yöntem olarak, elinizde json uzantılı bir dosya olabilir. Dosyada, yukarıdaki json verisi yer almaktadır.

Veri - Data sekmesinden Verileri Al -> Dosyadan sekmesi üzerinden "Json'dan - From Json" sekmesine tıklanarak json dosyası seçilir.



Seçim sonrasında Power Query eklentisinin ekranı açılır. Dosyada 3 adet elemanı bulunan bir liste vardır. 


Listedeki verileri ayrıştırmak için Liste'ye sağ tıklanıp "Tabloya" sekmesine tıklanır.


Açılan alanda görseldeki seçimler seçili olarak durup Tamam butonuna tıklanır.


İşlem sonrasında liste detayına ulaşılmıştır.


Bir önceki örnekteki gibi genişletildikten sonra ilişkili verilerin olduğu veriler yer alır. Json'deki batters ve tapping propertyleri için detaylar olduğu görünecektir. Column1.tapping kolonunda Json'deki tapping propertysinde liste bulunduğu için hücrede List yazmaktadır. Bunun anlamı, satır sayısının artacaktır.

İlerleyen adımlarda satır sayısı, ilişkilerden dolayı artacaktır.


Verileri genişletilip detaylara ulaşıldı. Tabloda olması istenmeyen sütunun kaldırılması için sütuna sağ tıklanarak Kaldır sekmesine tıklanır.


"Kapat ve Yükle - Close and Load" butonu ile veriler taşınır.


İlişkilerle birlikte 41 satırlık bir veri listesi tabloya aktarıldı.

Bu makalede; Json verilerinin Excel Power Query eklentisi ile iki farklı yöntemle ayrıştırma 
ve düzenleme yaparak tabloya dönüştürülmesi anlatıldı.

Motivasyon bölümünde de ifade ettiğim gibi;

Yazılım geliştiren kişilerin, exceli temel seviyede kullanabilmesi gerektiğini düşünüyorum.

Yazının faydalı olmasını umarak çalışmalarınızda kolaylıklar diliyorum :)

Yorumlar