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.
Ağustos 2021'de LuckyTemplates'a eklenen yeni, neredeyse tamamen belgelenmemiş bir DAX işlevi olan COLUMNSTATISTICS() DAX işlevinin dinamik kullanımlarını keşfetmeye devam etmek istiyorum. . Bu eğitimin tam videosunu bu blogun alt kısmından izleyebilirsiniz.
Pek çok deney yaptım ve bu işlevin nasıl çalıştığı ve onunla neler yapabileceğiniz hakkında gerçekten ilginç yeni şeyler öğrendim. Bu fonksiyonla ilgili ilk bloğumda bazı statik kullanımlardan bahsetmiştim. Bugün, işlevin IntelliSense'in bile henüz güncel olmadığı şekillerde gerçekten oldukça şaşırtıcı bazı dinamik kullanımlarından bahsedeceğim.
İçindekiler
DAX İşlevi COLUMNSTATISTICS Nasıl Çalışır?
COLUMNSTATISTICS, veri modelinizdeki her tablo ve alan için bir tablo adı, sütun adı, sütun için minimum ve maksimum değerler, kardinalite ve maksimum uzunluk içeren altı ek alandan oluşan bir tablo oluşturur. Bu çok fazla veri gibi görünmüyor, ancak bununla yapabileceğiniz çok şey var.
Şu anda kullanmakta olduğum veriler, LuckyTemplates Harici Araçları için yalnızca uygulama veri setidir. Beş boyut tablosu, bir olgu tablosu ve bir ölçü tablosu içeren nispeten basit bir veri modelidir . Bunun gibi bir modeli takip etmek o kadar da zor değildir, ancak karmaşık bir model çok daha karmaşık bir veri kümesi izleme gerektirir.
Karmaşık bir veri kümesinin meta verileri, bir alandaki benzersiz değerlerin sayısı olan kardinaliteye bakmak açısından çok daha önemli hale gelir. Modelinizin boyutu ve potansiyel olarak işleme hızı üzerinde büyük bir etkiye sahiptir.
Ek olarak, bir model oluştururken sadece tablo sayısını değil, bu tabloların tarih aralığını da bilmek yardımcı olur. Tarihler tablonuzu oluştururken, olgu tablonuzdaki tüm verileri kapsadığınızdan emin olursunuz.
Bu örnek için, üzerinde çalıştığım bu veri modeline bir tablo eklemeye çalışalım. Power Query'de New Source ve ardından Blank Query'ye gideceğiz . Ardından Gelişmiş Düzenleyici'ye gireceğiz ve List.Dates adlı bir işlevi yapıştıracağım . Bunu 10.000'lik bir kardinalite tablosu oluşturmak için kullanacağız, yani bu 10.000 benzersiz tarih.
10.000 öğelik bir liste döndürecek ve biz bunu bir tabloya dönüştürüp tabloyu yeniden adlandırabiliriz.
Buraya kadar olan alanı değiştirebiliriz. Ve Kapat ve Uygula'ya tıklarsak, akıllı anlatımımızın tüm modeli yenilemek zorunda kalmadan (geçmişte yaptığımız gibi) dinamik olarak güncellendiğini göreceğiz.
Bunun tamamen dinamik olmasının sebebi ise hepsini ölçülü yapıyor olmamız. İlginç olan, çok fazla hata göstermesi ve işlev o kadar yeni ki IntelliSense onu düzgün bir şekilde almıyor, ancak gerçekten çalışıyor.
Karmaşık DAX ölçülerinin gerçekte ne yaptığını anlamanın en iyi yolu olduğunu düşündüğüm Tabular Editor 3'e geçelim.
DAX sorgusunun ölçekleyiciler yerine tablolar döndürdüğünü unutmayın. Dolayısıyla, bu ölçümü alır ve bunu bir DAX sorgusuna kopyalarsak , bir hata gösterir çünkü buradaki Sonuç hala bir ölçekleyicidir. Bu RETURN Sonucunu ölçümün ayrı ayrı bileşenleriyle değiştirerek hata ayıklama yaklaşımını kullanabiliriz .
Bu durumda, onu ColStats ile değiştireceğiz , en üstte yaptığımız sadece COLUMNSTATISTICS DAX işlevini bir değişkene koymak. Bununla, standart sütun istatistik tablosu olan tam olarak beklediğimiz şeyi elde ederiz.
Ve şimdi, sadece Tablo Adı sütununa bakmak istiyoruz ve bundan farklı değerleri alıp saymak istiyoruz. Bu, veri modelimizdeki tablo sayısı olacak.
Öncelikle, ColStats tablomuzdaki sütunları seçeceğiz ve o tablo adı alanını döndüreceğiz. Tipik olarak, bir DAX ölçüsünde veya bir DAX sorgusunda, önünde tablo adı bulunan bir alan adı döndürmek istersiniz. Ancak bu durumda, uygun tablo adının neye atıfta bulunduğunu bilmiyoruz çünkü yalnızca sanal olarak var oluyor. Değişken adını tablo adı olarak kabul etmiyor gibi görünüyor.
Yani bu durumda, ölçü gibi görünen bir şeyle kalmamız gerekiyor, ama aslında önünde tablo referansı olmayan bir sütun referansı. Ve bu, terminolojide kafa karıştırıcı olmasına rağmen hala çalışıyor. Şimdi, bu RETURN deyimini TabCol ile değiştirirsek , tam olarak beklediğimiz şeyi, yani model tabloları alanını elde ederiz.
Ve sonra Sonuç için, sadece farklı tablo sütunlarını sayıyoruz. Yani, bunu DISTINCT(TabsCol) ile değiştirirsek , yedi tablomuzu elde ederiz.
Şimdi en yüksek kardinalite tablosundaki en yüksek kardinaliteye bir göz atalım ve bunları nasıl elde ettiğimize bakalım. Bu aslında aradığınız birçok farklı şey için kullanabileceğiniz önemli bir modeldir, yalnızca maksimum sayı için değil, aynı zamanda bu sayı ile ilişkili maksimum özellik için.
Öyleyse MaxCardinality'ye bir göz atalım . Bu bir ölçekleyici olsa da, onu sadece parantez içine alarak tek hücreli bir tabloya dönüştürebiliriz. Ve eğer beşe ulaşırsak, bunun 10.000'lik kardinalite değeri olduğunu göreceğiz.
Şimdi soru şu, bunu nasıl alıp kardinalite ile ilişkili tabloyu geri getireceğiz.
kullanarak bu çok yaygın modeli kullanıyoruz . Daha sonra bunu RETURN ifademize kopyalarız ve bize almayı beklediğimiz satırı, yani 10.000 Tarih sütununu verecektir. Bir sıra almak yerine (çünkü TOPN), iki tane alıyoruz çünkü eşitlik var.
ColStats ayrıca, her tablo için, tablonun her satırı için benzersiz bir tanımlayıcı olan RowNumber adlı gizli bir dizin satırında bir dizin oluşturur . Böylece MaxCardinality, benzersiz bir tanımlayıcıysa her zaman RowNumber tarafından yansıtılacaktır.
Ve böylece, iki sıramızın olması gerçekten önemli değil çünkü baktığımız Max of Table Name. Ve bu maksimum, aksi takdirde bu sadece çıplak bir sütun olacak bir değer döndürmek için var. Ancak bunun etrafına biraz toplama koymamız gerekiyor ve bu durumda kullanıyoruz .
Ardından, MaxCardinality'yi RETURN ifademize yerleştirir ve ölçekleyici yerine bir tablo döndürmek için parantez içine alırsak, Test değerini döndürür.
Bu TOPN DAX modeli, temel olarak bir maksimum veya minimum değeri bulmak ve ardından bu minimum veya maksimum ile ilişkili bir öznitelik döndürmek istediğinizde hatırlanması gereken gerçekten iyi bir modeldir.
Gelişmiş DAX Kullanarak LuckyTemplates Formüllerini Optimize Edin
DAX Ölçüm Analizi: Uzun DAX Ölçümlerini Parçalama
Ölçüm Dallandırma Kullanarak LuckyTemplates'da DAX Ölçümleri
Çözüm
DAX işlevi COLUMNSTATISTICS'i dinamik bir şekilde en iyi şekilde kullanmanız açısından kullanabileceğimiz genel yaklaşımı ve bağlamı size verdim. Bunu karmaşık bir model açısından dinamik olarak izleyebilmek, bence bu işlevin muazzam bir değeri var.
COLUMNSTATISTICS işleviyle ve DAX içinde meta verileri dinamik olarak işleme yeteneğiyle ne kadar çok deney yaparsak, o kadar ilginç kullanımlar bulacağımızı düşünüyorum. Dolayısıyla, bu DAX işlevi için bazı ilginç kullanımlar bulduysanız, lütfen aşağıdaki yorumlarda bana bildirin.
Herşey gönlünce olsun!
Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.
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.
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.