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.
Bu blog gönderisinde, LuckyTemplates forumunda sorulan bir soruya göz atacağız ve onu çözmek için bir DAX dili LuckyTemplates tekniği kullanacağız. Devam etmek ve dosyaları indirmek isterseniz, LuckyTemplates forumunu ziyaret edin ve gidin . Bu eğitimin tam videosunu bu blogun alt kısmından izleyebilirsiniz.
Ele alacağımız senaryoyu açıklamak için örnek olarak basit bir tablomuz var. İlk sütunda Mali seviye 1'e sahibiz . İkinci sütunda, Tamamlandı adlı bir tarihimiz var. Son sütunda, Gelir olarak adlandıracağımız mali düzey ve tamamlanma tarihi kombinasyonumuz var .
Ardından, Tarih ve Müşteri Adı için bir dilimleyicimiz var .
Belirli bir zaman dilimi için yapmak istediğimiz, sıfır olmayan ilk üç tarihi belirlemektir. Ve sonra bu ilk üç tarihte finansal seviyeyi belirlemek istiyoruz.
Tedbirin ilk versiyonunda bir miktar gelir elde ettiğimiz 29.4.2021 tarihinden az olan tarihleri listeledim.
Ve bu tarihlerde, bir miktar gelir sağlayan finansal seviyeleri belirlemek istiyoruz. Bu hesaplamayı nasıl gerçekleştirebileceğimizi size açıklayacağım.
İçindekiler
Veri Modelleme
Gerçek DAX'ı yazmadan önce, birden çok tablo içeren veri modeline hızlıca bir göz atalım. Yalnızca Tarih tablosu , Veri tablosu , İş kategorisi tablosu ve Müşteri tablosu ile ilgileniyoruz .
Yalnızca bir dilimleyici içinde kullanıldığından Müşteri tablosunun gerçekten önemli olmadığını unutmayın.
Gelir ölçüsü, Veri tablosunda hesaplanıyor. İş kategorisi, matriste sahip olduğumuz mali düzeyi içerir. Ardından, dilimleyicimizdeki Tarih tablosundaki Tarih sütununu kullanıyoruz.
Versiyon 1
Matrix'teki her şeyden kurtulalım ve sıfırdan başlayalım. Yeni bir ölçü oluşturacağım ve buna V1 adını vereceğim çünkü bu birinci sürüm olacak. Diğer iki varyasyona da bir göz atacağız.
Filtre İçeriğini Hazırlama
Yapacağımız ilk şey, finansal düzeyin tüm değerlerini filtre bağlamından almak. oluşturacağız ve onu FinancialLevelInFilterContext olarak adlandıracağız .
Değerleri filtre bağlamından almak için, mali düzey sütununu içeren İş kategorisi tablosundaki kullanacağız . O zaman başka bir değişken yaratmamız ve buna Result adını vermemiz gerekiyor . yazıp onu da kapatın.
İlk argümanda, tarih dilimleyici üzerinde bir seçimimiz var. Bu tarihlerde, 0'ı olmayan ve en azından bir miktar geliri olan tarihleri belirlemek istiyoruz.
O dilimleyicide seçili olan tüm tarihlere erişmek istiyorsak, Date tablosu üzerinden
Ve matriste finansal seviyeye sahip olduğumuz için, bu belirli değeri filtre bağlamından çıkardığımızdan da emin olmamız gerekiyor. Job kategorisi üzerinden kullanabilir ve ardından Financial Level 1 yazabiliriz.
Artık filtre içeriğimiz hazır olduğuna göre HESAPLAMA için en içteki hesaplamayı yazabiliriz. İlk olarak, ilk tabloda gördüğümüz gibi mali düzey ve tarih sütununun birleşimi olacak bir değişken bildireceğiz.
kullanacağız ve şu iki tabloyu özetlemek için Veri tablosunu kullanacağız: İş kategorisi ve Tarih tablosu.
Bu, Veri tablosunda bulunan mali düzey ve tarih sütununun birleşimini sağlayacaktır. Ardından, oluşturduğumuz ilk değişken için gelir satırının değerini saklayacağımız başka bir değişken oluşturacağız.
Bu değişkenin adı FinancialLevelAndDatesWithRevenue olacaktır . Bu değişkenin kodu önceki değişkene göre olacaktır . Ardından, bağlam geçişini başlatmak için Gelir olacak sanal bir sütun oluşturacağız. Dolayısıyla, bu değişkenin her satırı için geliri atadık.
Bu tablo da sıfır olan geliri içerir. Bu satırları sıfır ile filtrelememiz gerekiyor. Bunu yapmak için başka bir değişken oluşturabilir ve RemoveZeroes olarak adlandırabiliriz .
önceki değişkende kullanacağız , ardından gelirin sıfıra eşit olmayacağından emin olacağız. Sıfırdan büyük veya sıfırdan küçük olabilir, ancak kesinlikle sıfıra eşit olmamalıdır.
Ardından, tarihi RemoveZeroes değişkeninden alacağız . Bunu yapmak için başka bir değişken oluşturabilir ve ona KeepOnlyDates adını verebiliriz .
tarafından döndürülen yinelenen tarihlerden kurtulmak için kullanabilirim .
Ardından, azalan düzende ilk üç tarihi belirleyeceğiz. Başka bir değişken kullanacağız ve onu Last3Dates olarak adlandıracağız , ardından kullanacağız .
Ardından , tarih sütunundaki son üç tarih için kullanacağız , ardından sınırlayıcı kullanacağız.
Yeni oluşturduğumuz ölçüyü bu matrisin içine sürükleyip bırakalım. Aldığımız sonuç 31/03/2021, 07/04/2021 ve 02/04/2021. Bu, önlemimizin çalıştığı anlamına gelir.
Editöre geri dönelim ve RETURN CONCATENATEX kısmından kurtulalım. Bu son üç tarihi almak için RemoveZeroes değişkenindeki hangi satırların aslında bu son üç tarihin parçası olduğunu kontrol edebiliriz .
Bunun için başka bir DatesInLast3Dates değişkeni oluşturacağız ve RemoveZeroes üzerinde FILTER işlevini kullanacağız . Bu, bir İş kategorisi ve Tarihten oluşan bir tablo döndürecektir.
O tablonun içinde oluşturduğumuz gelir sütununu özetleyeceğiz. DatesInLast3Dates üzerinden SUMX döndürelim, ardından gelir sütununu özetleyelim.
Bu hesaplama ile her satır için yalnızca tek bir değer elde ederiz çünkü İş kategorisini filtre bağlamından kaldırmış bulunuyoruz.
DatesInLast3Dates değişkeninin her satırının filtre bağlamında mevcut olup olmadığını kontrol etmek için başlangıçta oluşturduğumuz değişkeni kullanacağız . Başka bir değişken yazıp IsInFilterContext olarak adlandırabiliriz .
Bu, DatesInLast3Dates değişkenindeki tarihleri filtreleyecektir . Ardından SUMX'i IsInFilter bağlamı üzerinden döndüreceğim ve gelir sütununu özetleyeceğim.
Enter tuşuna bastığımızda , başlangıçta aldığımız sonucun aynısını aldığımızı görebilirsiniz.
DAX Dili LuckyTemplates Hesaplamasının Sonucunu Doğrulama
Gerçekten doğru sonucu aldığımızı doğrulamak için, şimdiye kadar yazdığımız kodun aslında doğru sonucu döndürdüğünü hata ayıklama, belirleme ve doğrulama konusunda bize yardımcı olacak yeni bir HESAPLA tablosu oluşturabiliriz.
Buraya kadar yazdığımız kodun bir kopyasını oluşturalım. Aşağıda vurgulanan kısmı kopyalayacağım, geri dönüp yeni bir tablo oluşturacağım ve vurgulanan kodu yapıştıracağım. Bizi ilgilendirmediği için bu tabloya isim verme zahmetine girmeyeceğiz.
Ve basitçe RETURN DatesInLast3Dates yazabiliriz . Onayla'yı tıklarsam , bir tablo alırız ancak aslında dilimleyicinin davranışını gerçekten taklit etmemiz gerektiğinden bunun henüz doğru sonucu döndürmediğini biliyoruz.
Bu kodu bir CALCULATETABLE içine sarabilir ve her şeyi girintilendirebiliriz. Son bölümde, tarihin 2021-03-15'ten büyük veya buna eşit olması gerektiğini ve müşteri adının DHL Supply Chain'e eşit olması gerektiğini yazacağım .
O ölçü içinde oluşturduğumuz tablo adeta doğru sonucu veriyor. Hesaplamanızın içinde oluşturduğunuz sanal tabloyu doğrulamak için bir CALCULATETABLE kullanabiliriz.
Diğer DAX Dili LuckyTemplates Hesaplamaları
Artık hesaplamamızın işe yaradığını bildiğimize ve perde arkasında gerçekte neler olduğunu anladığımıza göre, aynı sorunu hesaplamak için başka yöntemlere bakabiliriz. Öncelikle oluşturduğumuz ölçünün bir kopyasını oluşturalım.
Versiyon 2
Bu sefer DEĞERLER ve FİLTRE işlevlerine güvenmeyeceğiz, bu yüzden onlardan kurtulacağız. HESAPLA içinde oluşturduğumuz son değişkenin yanı sıra dönüş sonucunu da kaldıracağız. Ardından, HESAPLA'yı HESAPLANABİLİR'e dönüştüreceğiz.
Ve skaler bir değer döndürmek yerine, bu kez DatesInLast3Dates döndüreceğiz . Bu, daha önce yaptığımız aynı HESAPLANABİLİR'i döndürür. CALCULATE işlevini kullanacağız ve ilk bağımsız değişkende gelir ölçüsünü hesaplayacağız ve CALCULATETABLE'ı filtre bağlamı olarak enjekte edeceğiz.
Bunu matrise getirdiğimde, her hücre için aynı genel toplam değeri döndürdüğümüzü görebilirsiniz.
KEEPFILTERS İşlevini Kullanma
Şu anda, sahne arkasındaki hesaplamanın doğru çalıştığını biliyoruz, ancak her bir hücre için yalnızca o finansal seviyenin değerini bildirdiğimizden nasıl emin olabiliriz?
HESAPLANABİLİR yardımıyla mali düzeyi, tarih sütununu ve gelir sütununu içeren bir tablo oluşturduk. CALCULATETABLE dışında var olan filtre bağlamı ile CALCULATETABLE tarafından oluşturulan filtre bağlamı arasında bir kesişme oluşturmak için anahtar filtre işlevini kullanabiliriz.
Onayla'ya tıkladığımızda, her hücre için doğru değeri bildirdiğimizi ve hem sürüm 1 hem de sürüm 2'nin doğru değeri döndürdüğünü görebiliriz.
Peki bu nasıl çalışıyor? HESAPLA tablosu, Bakım düzeyini, ardından Rental , Service External ve Spare parts öğelerini döndürür . KEEPFILTERS bakım ve o tablo arasında bir kesişim oluşturacak.
Rental, ilk filtre içeriğini oluşturacak, ardından CALCULATETABLE, İş kategorisinin tüm değerlerini döndürecektir. Ardından Rental ile HESAPLANABİLİR tarafından döndürülen tablo arasında bir kesişme olacaktır. Sadece o Kiralık kısım için tabloları veya satırları döndüreceğiz.
Ve son olarak, filtre bağlamına SUMMARIZE enjekte ettiğimizde, HESAPLA işlevi yalnızca Kiralama için geliri hesaplayacaktır. Her sıra için aynı işlem yapılır.
Versiyon 3
DAX dili LuckyTemplates kullanarak aynı hesaplamayı yapmanın başka bir yoluna bakalım. Sürüm 2 ölçüsünün bir kopyasını oluşturalım ve başka bir ölçü oluşturalım. Bu Sürümü 3 olarak adlandıracağız.
Bu hesaplamanın arkasındaki fikir, geliri HESAPLA işlevini kullanarak hesapladığımız için, ADDCOLUMNS bölümünü kullanmamıza gerek yok çünkü aynı şeyi HESAPLA içinde ve dışında çoğaltıyoruz. Bunun yerine, basitçe Gelirin 0'a eşit olmaması gerektiğini yazabiliriz.
Onayla'ya tıkladığımda, kodun çalıştığından emin olmamız gerekiyor, bu yüzden hadi ölçüyü matrisin içine sürükleyelim.
Kodun aslında her hücre için aynı değeri döndürdüğünü görebilirsiniz.
Tarih dilimleyicideki tarihi değiştirerek ve Müşteri Adından birkaç değer seçerek filtre bağlamını değiştirmeye çalışırsam, üç ölçümün de aslında her satır için aynı değeri döndürdüğünü görebilirsiniz.
Çözüm
Bu eğitimde, ilk üç tarihi belirlemek için bitiş tarihinden itibaren zamanda geriye gitmeye yönelik karmaşık bir mantığın nasıl kullanılacağını öğrendik. Bu DAX dili LuckyTemplates tekniğine dayanarak geliri hesaplayabildik ve yalnızca filtre bağlamında var olan değerleri gösterebildik. Bu eğitimde şimdilik bu kadar.
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.