Hiyerarşiler, PATH, PATHITEM

Tabular engine, yani Power BI 'ın analitik motoru, parent-child hiyerarşi yapısını doğrudan desteklemiyor. MDX'teki gibi doğrudan bir destek yok, bunun yerine hiyerarşileri sütun bazlı yapıya çevirmemizi sağlayacak fonksiyonlar var: PATH, PATHITEM vs gibi. Hiyerarşiden neyi kastettiğimizi açalım, aşağıdaki gibi bir veri setimiz var: Tüm ERP'lerdeki hesap planları üç aşağı beş yukarı bu yapıya benziyor, tüm … Devamını Oku…

Yeni DAX Fonksiyonları – REMOVEFILTERS, CONVERT, Eylül Yenilikleri, Temalar

Power BI 'a Eylül ayı içerisinde gelen güncellemeler arasında yeni iki tane DAX fonksiyonu var: ve . DAX 'ın ilk versiyonu PowerPivot'un da ilk çıkış yılı olan 2011'de çıktı. DAX v2, yani ikinci versiyonu aşağı yukarı bundan üç yıl sonra çıktı. Bu tarihten sonra ara ara yeni fonksiyonlar eklendi, ekleniyor. Bunların bazıları hakikaten versiyon 1 … Devamını Oku…

Bir Görseli Başka Bir Metriğe Göre Sıralama

Power BI projelerinde zaman zaman farklı sıralama ihtiyaçlarıyla karşılaşıyorum.  Bunların bir çoğunu Sort By Column ile çözmek genellikle mümkün oluyor. Tüm görsellerdeki varsayılan sıralama şekilleri, görsele düşürülen (satıra, sütuna, X-Y eksenine, değer alanına vs) metriklere veya sütunlara göre alfabetik olarak A'dan Z'ye , Z'den A'ya ya da nümerik ise büyükten küçüğe küçükten büyüğe şeklinde. Resimdeki … Devamını Oku…

Köprü Tablosu, Çift Yönlü İlişkiler, Pivot Tablo

Power BI projelerinin en önemli kısmı veri modelinin doğru tasarlanması. Yanlış/hatalı veri modeli üzerinde DAX'ı ne kadar iyi bilirsek bilelim taklalar atmak bir noktadan sonra zor. Doğru veri modelini kurmak -özellikle tek bir fact tablosunun olduğu modellerde- çok zor değil, her şey dönüp dolaşıp – veya – bağlanıyor. Fakat bazı ERP'lerin tasarımına bağlı olarak özellikle … Devamını Oku…

Sütunları Seçmek ya da Sütunları Uçurmak !

Her Power BI modeline başlarken genelde veri tarafında view'larla veya Excel dosyalarıyla çalışıyoruz. Kullanacağımız veri seti nihai halini alana kadar da bazen kullandığımız bu setlerdeki sütunları değiştiriyoruz, ekliyoruz, çıkartıyoruz. Power Query için eğitimlerde sarfettiğim standart best practice cümlelerinden biri şu : Sadece kullanacağınız sütunları alın, diğer sütunları -belki lazım olur diye bile olsa- almayın! Peki … Devamını Oku…

LASTDATE vs MAX

Herhangi bir transaction (fact) tablosundaki son değeri, son tarihi (veya ilkini) bulmak için LASTDATE, LASTNONBLANK ve MAX gibi fonksiyonları kullanabiliriz. Önceki yazılarda LASTDATE ve LASTNONBLANBK 'a değinmiştim. Tabii bunların ekürilerinin olduğunu da biliyoruz: FIRSTDATE, FIRSTNONBLANK ve MIN. LASTDATE ile LASTNONBLANK arasındaki farklar nispeten bariz. Ama LASTDATE ile MAX arasındaki farklar o kadar net değil. Bu … Devamını Oku…

LASTNONBLANK, FIRSTNONBLANK

LASTNONBLANK -ve ekürisi olan FIRSTNONBLANK-  isimlerinden de anlaşılacağı üzere mevcut context'teki ilk ve son değeri döndüren iki fonksiyon. Syntax'ları aşağıdaki gibi: Fonksiyona verdiğimiz sütun adı, doğrudan bir sütun referansı olabileceği gibi, sonucu tek sütunluk bir tablo olan başka bir tablo fonksiyonu da olabilir. Sonu X ile biten fonksiyonların (SUMX, AVERAGEX ..) iterator olduğunu biliyoruz, ama … Devamını Oku…

LASTDATE, FIRSTDATE

LASTDATE hemen her projede en az bir kez ihtiyaç duyabileceğimiz fonksiyonlardan. İsimden tahmin edilebileceği gibi ekürisi de var: FIRSTDATE. LASTDATE ( 'TabloAdı'[Tarih Sütunu] ) ve döndürdüğü şey, gördüğü mevcut filter context'teki en son tarihtir. Dönen tarih, tek bir değer dönüyor olsa da bir tablodur, . Dolayısıyla bizden parametre olarak tablo isteyen başka fonksiyonlarla birlikte kullanılabilir. … Devamını Oku…

Tabloları Birleştirme, Append ve Dizin Okuma

Power Query 'de tabloları birleştirmenin bir diğer şekli, tabloları alt alta, uçuca ekleme veya Power Query jargonuna göre "append" etme. Önceki yazıda bahsettiğim diğer tablo birleştirme şekli olan "merge" SQL'deki join'lere karşılık geliyor. Bu ise UNION karşılığı. Tabloları alt alta birleştirme ihtiyacı duyduğumuz bir kaç net durum var: Örneğin farklı şubelerin/birimlerin doldurduğu formatı ve yapısı … Devamını Oku…

Tabloları Birleştirme – Merge, Join Tipleri

Veri kaynaklarında bulunan tabloları zaman zaman birleştirme ihtiyacı duyarız. Bazı ERP tasarımlarında da şöyle durumlar var: Misal, faturanın tutar bilgisi bir tabloda, miktar bilgileri bir başka tabloda, aradaki ilişki de Tarih + Belge Numarası + Belge Tipi gibi sütunların kombinasyonu üzerinden tutuluyor. Önce basit bir örnekle başlayayım. Farklı / aynı tarihlerde iki farklı transaction tablosu … Devamını Oku…

Expanded Tables – Giriş

Expanded Tables, DAX'ın üzerinde koştuğu en önemli konseptlerden biri. Aslında davranışını neredeyse biliyoruz, hem ilişkilerin çalışma şeklinden dolayı, hem de RELATED gibi fonksiyonlardan dolayı. Diğer temel konseptlere de göz atmak isterseniz buradan: Filter Context, Row Context, Context Transition. Modeldeki tablolar ve ilişkiler aşağıdaki gibi: Çok basit SUM alan temel [Satışlar] metriği ile birlikte Alt Kategorilerin … Devamını Oku…

Power BI Projeleriniz İçin Öneriler

Yazının başlığını ne koyarsam daha doğru olur diye biraz düşündüm açıkçası, bugüne kadar gelen sorular, içinde bulunduğum projeler, Power BI ile bir şeyler yapmaya henüz yeni başlamış ve SQL bilgisi yüksek profiller, kullanılan ERP sistemini avcunun içi gibi bilenler, kendi alanına hakim power-user iş kullanıcılarını düşününce bazı gözlemlerimi ve değerlendirmelerimi aktarmak isterim. En sık karşılaştığım … Devamını Oku…

Asimetrik Raporlar, Excel Named Sets

Asimetrik rapor ne demek tanımlamadan önce Power BI 'daki matrisin varsayılan davranışına bir bakalım. Aşağıdaki gibi bir veri setimiz var: 2018 ve 2019 yıllarına ait satış verisi var, fakat bütçe sadece 2019 yılı için var. Basit SUM'larla ve bölme işlemiyle satışları, bütçeyi ve gerçekleşmeyi hesaplayıp aşağıdaki gibi bir matrise düşürüyorum. Yukarıdaki matris ! Satışlar, Bütçe … Devamını Oku…

Seçili Rapor Filtreleri

Power BI 'da kullanıcı ihtiyaçları arasında zaman zaman karşılaştığım bir durum var: Seçilen filtreleri raporun bir yerinde göstermek ve seçilen filtrelerin tamamını bir anda sıfırlamak. Rapor filtrelerini genelde "slicer" olarak ekliyoruz ve çoğunlukla da bir rapor tasarım unsuru olarak kullanıyoruz. Rapora eklediğimiz filtreleri zaten sayfada görüyoruz diyeceksiniz -ki benzer talepler geldiğinde benim de ilk tepkim … Devamını Oku…

Senaryo Analizi, Parametrik What If

Raporlarımızdaki metriklerin bazen parametrelere bağlı olarak nasıl değişeceğini görmek isteriz. Örneğin fiyatları %5 arttırsak, ciro-karlılık ne kadar etkilenecek, maliyetleri %5 düşürebilsek sonuçlar ne olacak? Çoklu para birimli bir bütçe yaptıysak kur değerine bir aralık vermek isteyebiliriz. Yani, senaryo analizi yapmak isteriz. Power BI 'da senaryo analizi için bir yapısı uzun süredir var. Aşağıdaki gibi basit … Devamını Oku…

Azure Analysis Service ve Azure AD B2B

Şunu itiraf etmeliyim, tüm konsantrasyonum Power BI ve ilgili Azure servisleri olmasına rağmen hızına yetişmekte hakikaten zorlandığım bir geliştirme hızı var. Yakın zamanda gelen bir kaç önemli özelliği bile kaçırmışım, bunu da son yaptığımız webinar'da Mustafa Aşıroğlu sayesinde farkettim. Gene itiraf etmeliyim, e-posta-mesaj yoluyla sorulan sorulara olabildiğince hızlı dönüş yapmaya çalışıyorum ama bunlara da son … Devamını Oku…

Embedding

Sık gelen sorulardan bir tanesi, Power BI raporlarını bir başka uygulamada, özellikle de bir web sitesi altında gösterebilirmiyiz sorusu. Soruyu soran kurum / kişilerin amacı genellikle çok sayıda kullanıcı olması durumunda Pro lisans olmadan rapor paylaşımında bulunmak, örneğin bir eğitim kurumusunuz diyelim ve binlerce öğrenci yüzlerde akademisyen var, powerbi.com servisini kullandırmak istediğinizde paylaşıma girdiği ve … Devamını Oku…

Row Level Security

Row level security, ya da kısa yazılışıyla RLS, veri modeline erişen kullanıcının kimliğine göre modeli sağlayan bir özellik. Diyelim bir satış modelimiz var ve gayet güzel raporlar hazırladık. Sonraki ihtiyaç genelde şöyle bir şeye benziyor: Marmara bölge müdürü girdiğinde sadece Marmara bölgesine ait satışları, Ege bölge müdürü girdiğinde sadece Ege bölgesine ait satışları görsün, ama … Devamını Oku…

Hesaplanmış Sütun Olarak RANKX

Daha önce RANKX'in metrik olarak kullanımına ilişkin üç farklı yazı eklemiştim, 1, 2, 3, bu sefer de hesaplanmış sütun olarak kullanımına ilişkin örnekler vereceğim. Çünkü bu fonksiyon filter context, row context ve hesaplanmış sütun kavramlarının çalışma mantığını anlamak açısından çok güzel bir örnek. Ve DAX tamamen bu konseptler üzerinde dönüyor. Metrik olarak kullanımı kısaca özetlemek … Devamını Oku…

Kategoriler Dax

Groups, Bins

Power BI ile hazırlamış olalım veya olmayalım, tüm raporlarda kullanıcı ihtiyaç ve talepleri genelde çok benzer: Bir matristeki rakamları incelerken 1000 tane ürünü altalta görmek istemeyiz, en yüksek veya en düşük -diyelim- 30 ürüne odaklanmak isteriz. Görsellerde görüntülediğimiz ürün kategorileri, satış ekibi, müşteri sınıfı ya da masraf merkezi gibi modelimizde bulunan sütunları/değerleri gruplamak da benzer … Devamını Oku…