Pythonda Self Nedir: Gerçek Dünyadan Örnekler
Python'da Self Nedir: Gerçek Dünyadan Örnekler
Her ayın ilk N iş gününü dinamik olarak karşılaştıran bu öğreticide tartışılan soruna bir kez daha göz atalım . Bu sorun, forumumuzda bir LuckyTemplates üyesinin belirli bir ay için ilk 5, 10, 15 ve 20 faturalandırılabilir günü (hafta sonları ve tatiller hariç) dinamik olarak incelemek ve karşılaştırmak istediği sorgusuna dayanıyordu. önceki ay
Güçlü sorgu kullanmak yerine, bir DAX kodlama dili çözümü bulacağız. Bu eğitimin tam videosunu bu blogun alt kısmından izleyebilirsiniz.
İlk videoda bu sorunun nasıl çözüleceğine dair bir power Query çözümü ile karşılaştım. Ancak daha sonra LuckyTemplates uzmanlarımızdan biri olan Antriksh Sharma, daha derinlemesine incelemeye değer, son derece etkili bir önlem buldu. Size DAX araç kutunuzda ek araçlar sağlayacak bir ölçü geliştirirken kullandığı bazı teknikleri tartışacağız.
Kesinlikle benim ve buna bir göz atan diğer uzmanların bazıları için yaptı. Karşılaştırılabilir iş günlerinin aylara göre benzer şekilde karşılaştırılması, genel olarak birçok durumda kullanılabilen değerli bir modeldir.
Güç sorgusuna dalalım ve Antriksh'in burada ne yaptığına bir göz atalım. Ay ve Yıl , Toplam Satışlar ve son olarak, geliştirdiğimiz what-if parametresine dayalı güçlü sorguyu kullanarak seçtiğimiz N İş Günü için Toplam Satış'a sahibiz .
Antriksh, tüm sorunu çözmek için şaşırtıcı derecede kısa bir önlem kullandığı çok farklı bir yaklaşım benimsedi. komutunun kullanılmasıydı .
Bu, çok sık kullanmadığım bir DAX işlevidir, ancak bu tür problemler için mükemmel bir seçimdir. SQL BI DAX Kılavuzuna bakacak olursak, GENERATE işlevinin iki farklı tabloyu girdi olarak kullanan ve ardından CROSS APPLY SQL komutunun eşdeğerini yapan bir tablo işlevi olduğunu söylüyor.
Bu nedenle, bir temel tablo (Table1) alır ve bu tablo üzerinde yinelenir ve ardından ikinci bir tablo ifadesi alır ve bunu ilk tablodaki her satır için değerlendirir ve ardından çıktı olarak tabloya geri döner.
Antriksh'in ölçüsünü alıp masaya bırakalım. Geçen sefer yaptığımız güçlü sorgu çözümüyle tamamen aynı sonuçları ürettiğini görebiliriz. Yani bu iyi ve her iki önlemi de oldukça iyi doğruluyor.
Bu tedbiri ayıralım. Burada uygulanan ilk filtre Dates[IsBusinessDay] = TRUE şeklindedir. Bu, genişletilmiş tarih tablosu IsBusinessDay alanına dayalı olarak tüm hafta sonu ve tatil dışı tarihleri çıkarır.
Bunu tatil masamıza nasıl bağlayacağımızı da ele aldığımız ilk öğreticide bundan daha çok bahsediyoruz .
Bunun ilginç kısmı gerçekten iki tablo girişinde geliyor. İlk tablo, Tarih tablosundaki Ay ve Yıl alanının tek sütunlu tablosudur.
Ancak ikinci tablo girişi, ilginç şeylerin olduğu yerdir. Antriksh bir kullandı ve ardından dinamik parametremizi TOPN'deki satır sayısı olarak kullandı.
Toplam Satış ölçüsü ikinci tabloya eklenir ve ardından ilk tabloya uygulanır.
İçindekiler
DAX Kodlama Dilini Kullanarak Karmaşık Bir Ölçüyü Anlama
Bunun gibi karmaşık bir önlemin ne işe yaradığını anlamanın en kolay yollarından biri Tabular Editor'a gitmektir . Bu ifadeye bir göz atabilir ve önce bu TOPN ifadesinin ne yaptığını anlayabiliriz.
TOPN kısmını kopyalayalım ve yeni bir DAX sorgusu oluşturalım . DAX sorgularının DEĞERLENDİRME ile başladığını unutmayın.
TOPN kısmını yapıştırdığımızda bunun satış siparişi tablosundan ilk 5 tarihi çektiğini göreceğiz. TOPN'de, satış tablosundaki tüm sipariş tarihlerinin değerlerinden oluşan bir tablo vardır.
Bu TOPN işlevi, what-if parametresinin değerini (bu durumda 5'tir) alıyor ve bunu satış siparişi tarih alanına uyguluyor. Ardından, filtre bağlamındaki ilk 5 tarihi, o alana göre artan sırada çekiyor.
Ek bir filtre bağlamı olmadığı göz önüne alındığında, tüm tablodan sadece ilk 5 tarihi çekiyor.
@Sales sütunu, uygun filtre bağlamındaki toplam satışları TOPN tablosuna ekliyor.
Şimdiye kadar, Ay ve Yıl'ın ilk tablosuna, satış tablosundan ilk N tarihinin TOPN'sinin ikinci tablosuna ve ardından bununla ilişkili toplam satışlara sahibiz.
GENERATE Tablosunu DAX Kodlama Dilinde Kullanma
Bu GENERATE tablosunun ne yaptığına bir göz atalım. Tabular Editor'a geri dönüp yeni bir DAX sorgusu oluşturacağız.
DEĞERLENDİRME ile her zaman yaptığımız gibi başlayacağız, kodun GENERATE kısmını yapıştırın ve 5'e tıklayın.
İlk tablonun her satırı için @Sales fonksiyonu bağlamında değerlendirilen TOPN tablosundaki 5 satırla iterasyon yaptığını ve birleştiğini görebiliriz.
İlk 5 iş gününü Nisan'da, ilk 5 iş gününü Mayıs'ta, ilk 5 iş gününü Haziran'da aldı ve ilk tablonun sonuna gelene kadar böyle devam etti.
Bu tam olarak ihtiyacımız olan şey ve şimdi bu değerleri toplamak nispeten basit bir mesele haline geliyor. Sonucu elde ettik (bu, GENERATE sonuçlarının tablo değişkenidir) ve ardından @Sales işlevini özetlememiz gerekir.
Bağlam dahilinde, şimdi Nisan'ın ilk 5 iş gününü, Mayıs'ın ilk 5 iş gününü vb. toplam tutarımız 23.737.430$'a inene kadar özetliyoruz; bu durumda faaliyet gösterecek Ay ve Yıl bağlamı yoktur. .
Bu, tüm @Sales sütununu özetler ve bize güçlü sorgu çözümümüzde sahip olduğumuz toplamın aynısını verir.
Dilimleyiciyi 10 olarak değiştirirsek, dinamik olarak DAX kodlama dili ile power sorguda aldığımız sonuçların aynısını elde ettiğimizi görebilirsiniz.
Alt kısımda yaptığımız değişiklikleri yansıtmak için dinamik olarak ayarlanan çubuk grafiğimiz de var.
Ölçü Başlığını Dinamik Olarak Ayarla
Size göstermek istediğim başka bir numara daha var. What-if parametrenizde dinamik bir ayarlama oluşturabilir ve bunu dinamik olarak bir hesaplama başlığına bağlayabilirsiniz.
Örneğin, üstteki dilimleyiciyi 15 olarak değiştirirsek, alttaki ölçümün adını dinamik olarak Her Ayın İlk 15 İş Günü için Toplam Satışlar olarak değiştirir .
DAX'ta koşullu biçimlendirme kullanarak bunu yapmanın kolay bir yolu vardır . Temelde sadece üç dize alıyoruz. İlki, İlk için Toplam Satış'tır ve ardından bunu ne olursa olsun parametresinden topladığımız değerle birleştirin ve ardından bunu başlığın geri kalanına bağlayın.
Ardından görsele geçiyoruz, başlığın koşullu biçimlendirmesine gidiyoruz ve fx'e tıklıyoruz .
Alan değerine göre biçimlendireceğiz ve o dinamik başlık ölçüsünü seçeceğiz. Bu, what-if parametresinin seçimini değiştirir.
Çözüm
Şu anda sahip olduğumuz, DAX kodlama dilini kullanan eksiksiz bir çözüm. GENERATE işlevini kullanarak bunu yapmanın gerçekten yaratıcı ve verimli bir yolunu tartıştık. Harika DAX bilgisini bizimle paylaştığı için Antriksh'e teşekkür etmek istiyorum. Onun DAX çözümünü incelerken çok şey öğrendim ve umarım siz de öğrenmişsinizdir.
Python'da Self Nedir: Gerçek Dünyadan Örnekler
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.
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.
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.
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 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.
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.
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.
Şimdiye kadar hala Excel kullanıyorsanız, iş raporlama ihtiyaçlarınız için LuckyTemplates'ı kullanmaya başlamak için en iyi zaman budur.
LuckyTemplates Ağ Geçidi Nedir? Bilmen gereken her şey