DAXta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bu blog yazısında, zaman istihbaratıyla ilgili bazı sıkıntılı konuları, özellikle de hafta parçalılığının neden olduğu sorunları ve bir yıldaki düzensiz hafta sayısının neden olabileceği sorunları ele alacağız. DAX'ta doğru zaman zekası bulmak için ofsetleri kullanacağız.

Bugün sizin için ilginç bir senaryomuz var. Bu, son zamanlarda LuckyTemplates forumunda birkaç kez gündeme geldi. İnsanların yapmak istediği, bir görsel (çizgi grafik veya çubuk grafik olabilir) almak ve bunu başlangıç ​​tarihinde dinamik olarak değiştirmekti. Bu eğitimin tam videosunu bu blogun alt kısmından izleyebilirsiniz.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bu durumda, petrolün varil başına ortalama spot fiyatı için çalıştığımız aynı veri setini kullandık . Her zaman Ocak ayının başından başlamak yerine, görseli tıklayıp farklı bir başlangıç ​​tarihiyle değiştirebilmek, ancak her zaman bir yıllık verileri göstermek istedik.

İçindekiler

DAX'ta Zaman Zekasına İlişkin Örnek Senaryolar

Bu tekniği yapmak isteyebileceğiniz birkaç neden var. Nasıl hesaplandığı açısından sürekli olarak yeniden ayarlanan bir metriğiniz varsa bunu kullanabilirsiniz. Yalnızca ileriye dönük yeniden düzenleme dönemindeki verileri göstermek isteyebilirsiniz.

Bunu kullanmanın başka bir nedeni, bunu animasyonlu bir şekilde görselleştirmek istemenizdir. Bu, temel olarak verilerinizi alacak ve oynatma erişimine tıkladığınızda dinamik olarak gösterecektir.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bu görselde, 12 aylık bir süre içinde zaman içinde nasıl değiştiğini göstermek için başlangıç ​​tarihini aydan aya değiştirebiliriz. Bu, farklı iş durumları için ilginç ve yararlı bir görseldir, ancak teorik olarak DAX ve veri modelleme ile ilgili bir dizi önemli konuyu da temsil eder.

LuckyTemplates'a gidip önce veri modelimize bakalım. Bu , genişletilmiş bir tarih tablosu ve tarihlere bağlı bir spot fiyat tablosu ile gerçekten basit bir veri modelidir .

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

DAX'ta Zaman Zekası İçin Ötelemeleri Kullanma

Üzerinde çalışacağımız şeylerden biri ofsetler . Genişletilmiş tarih tablosundaki ofsetler dinamik olarak hesaplanır. Rapor her yenilendiğinde veya açıldığında, M kodundan geçer. Örneğin bir aylık ofsette, içinde bulunulan ayı 0, önceki ayı -1 ve iki ay öncesini -2 olarak atar. İleriye dönük olarak, bir sonraki aya +1 ve sonraki iki aya +2 ​​atar.

Bu basit bir kavramdır ancak DAX'ta zaman zekasıyla uğraşırken ve aylar , çeyrekler ve haftalarla çalışırken inanılmaz derecede güçlüdür . Bir ofset kullanmıyorsanız, bazen hesaplamalarınızda makul miktarda karmaşıklık yaratır.

Ofsetleri kullanmak, yılın neresinde olursanız olun, bir ay geriye gitmenin her zaman -1 olduğu ve bir ay ileri gitmenin her zaman +1 olduğu sürekli bir sayı dizisi kullanmak anlamına gelir.

DAX'ta Zaman Zekası İçin Lastik Ördek Stratejisini Uygulama

Geçmişte, DAX'inizi yazmaya başlamadan önce stratejinizi yüksek sesle dile getiren lastik ördekten bahsetmiştim .

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

DAX'ta zaman zekasını kullanarak bunu aylık bir bağlamdan nasıl halledeceğimi yüksek sesle düşünüyorum. Seçilen yıl ve aya göre bir şeye başlardım ve bağlantısız bir tablo kullanarak olanları seçerdim, çünkü düşünürseniz, diğer tüm seçimler kesişen yılları içerecektir (Ocak hariç).

Diyelim ki Mart ayından itibaren 12 ay istiyoruz, sonraki yıl en az iki ay ile bitireceğiz. Bağlı bir dilimleyici kullanırsak, yalnızca o yıl için filtre uygulayabiliriz ve sonraki yıl için filtre uygulayamayız.

Başlama Tarihinden İtibaren Ofsetlerin Hasat Edilmesi

Bunu hem ay hem de yıl için bağlantılı bir tablo ile yapalım. İlk olarak, başlangıç ​​tarihiyle ilgili ilk ofseti toplamamız gerekiyor.

Ve sonra bu ofseti 12 ay ileriye taşımak istiyoruz ve ardından yalnızca bu ofset kümesi içindeki tarihlere bakmak istiyoruz. Bunun DAX'ta nasıl göründüğünü size göstereyim.

Aylık Aralığın Hesaplanması

Bu, Aralık İçinde Aylık için ölçümüzdür ve burada yılımızı (bağlantısız yıl tablosundan topladığımız) ve ayımızı (bağlantısız ay tablosundan topladığımız) seçeriz.

Ayrıca, herhangi bir seçim yapılmazsa, varsayılan olarak Ocak olarak ayarlanacak başka bir parametremiz var. Bu parametre öncelikle yalnızca hata ayıklama amaçlıdır.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Başlangıç ​​ve Bitiş Ay Ofsetlerinin Hesaplanması

Şimdi MAX ofsetini hesaplayarak başlangıç ​​ayı ofsetine bakalım . Tarihler tablosundaki tüm filtreleri kaldırıyoruz ve seçilen ay ve yıla göre filtreliyoruz. Her ay için, o ay ve yıla karşılık gelen yalnızca bir mahsup olmalıdır.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bu noktadan itibaren, yalnızca başlangıç ​​ayı farkı + 11 ay olan bitiş ayı farkını alabiliriz .

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Ardından, seçilen her tarihe bakarız ve ilk ay ofseti ile son ay ofseti arasında olup olmadığını belirleriz. o periyoda girerse 1, değilse 0 veririz.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Görselimizde aylık görünüme geri dönersek, bire eşitlediğimiz Aralık İçi görselini görebiliriz . Yani sadece başlangıçtan bitişe kadar olan ayları gösteriyor. Örneğin, Şubat'a tıklarsak, Şubat'tan Ocak'a kadar görürüz.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Haftalık Aralığın Hesaplanması

Bunun haftalık bir bakış açısıyla nasıl göründüğüne bakalım. Görsel başlangıçta iyi başlar ve 1. haftadan 52. haftaya kadar devam eder. Şimdiye kadar, çok iyi.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Ancak yıl dilimleyicide diğer yıllara tıklarsak 52. haftayı görebiliriz, bazılarının ise 53. haftası vardır ki bu çok fazla sorun sunar. Bu örnekte sorunun kendini göstermeye başladığını görebilirsiniz.

2020 yılı ve 15. hafta başlangıç ​​dönemimiz var ama bitiş dönemi 2021 yılı ve 14. hafta yerine 2021 yılı ve 13. hafta .

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

1. haftaya geri dönersek, iyi başladığını ancak 52. haftada bittiğini görebiliriz. Burada 53. hafta hesaplamasına bakarsak, 2020 ve 2021 için maksimum hafta sayısı 53 haftadır. Bu, haftalık ayrıntı düzeyi için işe yaramayacak.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bu işi yapmak için neler yapabileceğimize bir bakalım. DAX hesaplamasını tam da bu kısımda düzeltmemiz gerekiyor:

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bunun nedeni, bazı durumlarda, bir yılda yalnızca 52 hafta olduğunda 51'in doğru olmasıdır, ancak 53 haftanın olduğu yıl için bu son dönemi bırakacaktır. Hesaplamanın 2020 ve 2021 yıllarında o son dönemi çıkardığı haftalarca dinamik görselde gördüğümüz tam olarak buydu.

Bunu düzeltmek için, aslında önceki ölçümden daha basit görünen Aralık İçinde Haftalık Yanlış ölçümüne gidiyoruz . Bir başlangıç ​​ofseti ölçümü yaptık ve maksimum ofseti hesapladık. Ardından, filtreyi tarihlerden çıkardık ve ardından filtreyi, bunun doğru ofsete yol açacağı varsayımıyla seçilen haftaya ve seçilen yıla uyguladık.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Ancak bu işe yaramaz çünkü bir maksimum ofset veya bir min ofset kullanmanız fark etmez. Tek yaptığımız, bir CALCULATE ifadesine çıplak bir sütun koymamak için bir toplayıcıyı sarmak.

Ancak burada ISO WeekNumber'a geri dönersek , bir yıl ve bir hafta numarasının o ilk periyotta haftalık ofseti benzersiz bir şekilde belirlemediğini görebiliriz.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bunu yapmanın kurşun geçirmez bir yolunu buldum. MIN'i kullanabilirsiniz, ancak bu 1. Hafta Ofset ölçüsünü oluşturmak daha mantıklıdır. 1. haftayı dengelemek için 2. hafta ile uğraşıyoruz çünkü asla bölünmez. Yılda 52 veya 53 hafta olmasına bakılmaksızın, 2. hafta olduğu gibi kalır.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Bu hesaplamada ofseti elde etmek için 2. haftaya kadar filtreleme yapıyoruz. Ve sonra 2. hafta denkleştirmesini elde ettiğimizde, ondan sadece bir çıkarırız. Bu bize açık bir şekilde 1. hafta ofsetini verecektir. Bu, sorunumuzu çözmekle sonuçlanır.

Aralık İçi Haftalık Hesaplama

Ve sonra Aralık İçinde Haftalık ölçümüze geri dönüyoruz ve bir EĞER ifadesi yazıyoruz, burada hasat sayısı 1. hafta içinse, birinci hafta ofsetini hesaplıyoruz. 1. hafta değilse, önceki aylık hesaplamada yaptığımız gibi sadece başlangıç ​​haftası ofsetini hesaplarız.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Ve sonra bitiş haftası ofseti, başlangıç ​​haftası ofseti + 52 veya 53 olabilen maksimum hafta sayısı olacaktır. Ardından, başlangıç ​​ofsetini iki katına çıkarmamak için sadece 1 çıkarırız.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Haftaları filtrelemek için aylık aralık için kullandığımız yapının aynısını yapabiliriz; burada başlangıç ​​ile bitiş ofseti arasında kalan her şey 1 ve olmayan her şey 0 alır.

Ardından Aralık İçinde Haftalık ölçüyü filtre bölmesine yerleştireceğiz. Her şey kontrol ediliyor ve tam olarak doğru görünüyor.

DAX'ta Zaman Zekası: Başlangıç ​​Dönemini Dinamik Olarak Seçme

Oynatma eksenine tıklayabilir ve hafta ayrıntı düzeyini çalıştırabiliriz. Ay bağlamında olduğu gibi düzgün çalıştığını görebiliriz.

Çözüm

Bu, hafta sayılarıyla ilgili bazı sorunları nasıl çözebileceğimizi tartıştığımız DAX'teki zaman zekasına oldukça derin bir dalış. Umarım bu öğreticiyi faydalı bulmuşsunuzdur ve sorunlu bir hafta durumuyla uğraşırken alet kutunuzda size bazı ek araçlar sağlamışsınızdır.

Bu özel eğitimde ele alınan içeriği beğendiyseniz, lütfen LuckyTemplates TV kanalına abone olmayı unutmayın. LuckyTemplates ve Power Platform'u kullanma şeklinizi geliştirmeye adanmış, kendimden ve çeşitli içerik oluşturuculardan sürekli olarak gelen çok miktarda içeriğimiz var.

Leave a Comment

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutunu Küçültmek için 6 Etkili Yöntem. Hızlı ve kolay yöntemler ile verilerinizi kaybetmeden yer açın.

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Python'da Self Nedir: Gerçek Dünyadan Örnekler

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

R'de bir .rds dosyasındaki nesneleri nasıl kaydedeceğinizi ve yükleyeceğinizi öğreneceksiniz. Bu blog aynı zamanda R'den LuckyTemplates'a nesnelerin nasıl içe aktarılacağını da ele alacaktır.

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

Bu DAX kodlama dili eğitiminde, GENERATE işlevinin nasıl kullanılacağını ve bir ölçü başlığının dinamik olarak nasıl değiştirileceğini öğrenin.

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

Bu eğitici, raporlarınızdaki dinamik veri görselleştirmelerinden içgörüler oluşturmak için Çok Kanallı Dinamik Görseller tekniğinin nasıl kullanılacağını kapsayacaktır.

LuckyTemplatesda İçeriği Filtrelemeye Giriş

LuckyTemplatesda İçeriği Filtrelemeye Giriş

Bu yazıda, filtre bağlamından geçeceğim. Filtre bağlamı, herhangi bir LuckyTemplates kullanıcısının başlangıçta öğrenmesi gereken en önemli konulardan biridir.

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Apps çevrimiçi hizmetinin çeşitli kaynaklardan oluşturulan farklı raporların ve içgörülerin yönetilmesine nasıl yardımcı olabileceğini göstermek istiyorum.

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

LuckyTemplates'da ölçü dallandırma ve DAX formüllerini birleştirme gibi teknikleri kullanarak kâr marjı değişikliklerinizi nasıl hesaplayacağınızı öğrenin.

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

Bu öğreticide, veri önbelleklerini gerçekleştirme fikirleri ve bunların DAX'ın sonuç sağlama performansını nasıl etkilediği tartışılacaktır.