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.
Bugün önemsiz boyut adı verilen bir veri modelleme konseptinden bahsetmek istiyorum . Adından, bunun aşağılayıcı bir teknik olduğunu ve kaçınmak isteyeceğiniz bir şey olduğunu düşünebilirsiniz, ancak aslında yararlı bir yaklaşımdır.
bir soru üzerinde çalıştım ve bunun için önemsiz bir boyut mükemmel bir çözümdü. Onu bir kez görüp anladığınızda, kendi çalışmanızda bunun için pek çok uygulama bulacaksınız. Bu eğitimin tam videosunu bu blogun alt kısmından izleyebilirsiniz.
İçindekiler
Önemsiz Boyutlar Nedir?
Kimball ve Ross'un boyutsal modellemenin kutsal kitaplarından biri olan The Data Warehouse Toolkit , bunu tipik olarak düşük kardinalite işaretlerinin ve göstergelerinin gruplandırılması olarak tanımlar . Düşük kardinalite, belirli bir alanda az sayıda benzersiz gözlem anlamına gelir.
Örneğimizde, özel bilgisayarlar oluşturma işimiz için bir veri modelimiz var. Veri modeli, siparişler ve faturalarla ilgilidir. Ayrıca işlemci tipini, kule konfigürasyon tipini (Kompakt veya Tam) ve amacı (Oyun veya İş İstasyonu) yakalayabildiğimiz bir dizi bayrağımız var .
Mutfak Önemsiz Çekmece Analojisini Kullanarak Önemsiz Boyutları Tanımlama
Bu alanların her birine bakarsanız, her alanda yalnızca iki benzersiz gözlem olduğunu görürsünüz. Bu, Kimball'un düşük kardinalite bayrağı olarak adlandırdığı şeydir . Soyut bir boyut yaratarak, kullanışlı bir boyutsal çerçeveye yerleştirirken olgu tablosundan bayrakları kaldırdığımızı söylüyor.
Önemsiz bir boyut için mutfak çöp çekmecesinin benzetmesi iyi bir örnektir. Herkesin lastik bantlar, zımba telleri, piller, doğum günü mumları vb. ile dolu bir çekmecesi vardır. Bunlardan herhangi birinin kendi çekmecesine sahip olması önemli değil, ancak onları koyacak bir yerinizin olması gerekiyor.
Bunları tutmak, olgu tablosunun balon gibi büyümesine neden olabilir. Diyelim ki bir milyon kayıt içeren bir olgu tablomuz var. Pek çok bilgisayar yaptık ve yaptığımız her bilgisayar için işlemciyi, kuleyi ve amacı işaretlememiz gerekiyor. Bu, sipariş edilen bir milyon bilgisayar sırası için olgu tablosunda 3 milyon bayrağımız olduğu anlamına gelir.
Olgu Tablosunun Boyutunu Küçültme
Bunları bir boyut tablosuna taşıyabilir ve olgu tablosundan 3 milyon işareti kaldırmak için yalnızca Model Kimliğine bağlayabiliriz. Bunu yapmak için bu bayrakların her biri için ayrı bir tablo oluşturabiliriz ve işe yarayacaktır. Ancak bu süreç, normalde tek sütunlu tablolardan kaçınmak istediğiniz veri modelini karmaşıklaştıracaktır.
İdeal çözüm , genel bir şekilde ilişkili olan bir grup düşük kardinalite bayrağına sahip olduğunuz önemsiz bir boyut kullanmaktır . Bunların tümü, inşa etmekte olduğumuz bilgisayarların nitelikleriyle ilgilidir, ancak normalde belirli bir boyut tablosu için sahip olacağınız gerçekten doğrudan bir şekilde değildir.
Forum Üyesinin Sorununu İnceleme
Forumda yayınlanan özel uygulamaya bir göz atalım. Üye, biri Stalled ve diğeri Active olmak üzere iki farklı alan oluşturmak istedi . Müşteri son 45 gün içinde bir işlem yaptıysa, işlem aktif olarak işaretlenir; aksi takdirde, durmuş olarak işaretlenir.
Üye ayrıca İstemci Tipi için çok sıralı veya tek sıralı başka bir boyut tablosu istedi. Hesap, geçmişte herhangi bir noktada tek bir hesap numarası kullanılarak iki veya daha fazla işlem yaptıysa, bu çok siparişli bir müşteri olarak kabul edilir. Ve belirli bir hesap numarası için yalnızca bir siparişleri olsaydı, bu tek siparişli bir müşteri olurdu.
Yani bunlar geliştirmek istediğimiz iki bayrak. LuckyTemplates'a atlayalım ve bunu nasıl yapacağımızı bulalım.
Önemsiz Boyut İçin Veri Modelleme
Veri modeline bir göz atalım. Bu gerçekten basit bir veri modeli. Genişletilmiş Tarihler tablomuz ve İşlemler tablomuz var .
İşlemler tablomuzda yalnızca üç alan bulunur: hesap numarası , fatura tarihi ve satış miktarı .
Genel olarak, dönüşümü kaynağa yaklaştırabilirsek, bunu yaparız. Bu, bir raporlama oturumu sırasında dinamik değildir, dolayısıyla bunu DAX'ta yapmamıza gerek yoktur .
Bu seçeneğe sahipsek, bunu ya güç sorgusunda ya da veri ambarı/SQL'de yapıyor olmalıyız. Ama şimdilik, yapmadığımızı ve bunu sadece power query içinde yaptığımızı varsayalım .
Önemsiz Boyut İçin İstemci Türünü Belirleme
Yapacağımız ilk şey, ister tek sipariş ister çok sipariş işlemi olsun, müşteri türünü belirlemek. Group By , Count ve Count Rows kullanacağız .
Ardından tüm verileri ekleyin ve bunu bir Tüm Satırlar işlemi yapın , böylece birleştirilmiş tabloyu değil, her satırda o satırın bulunduğu ilk tabloyu döndürürüz.
Sonuca bir göz atalım ve genişletelim.
Özel bir sütun ekleyebilir ve bunu İstemci Türü olarak adlandırabilir ve ardından bir IF ifadesi oluşturabiliriz. İfade, Count 1'e eşitse, o zaman tek bir sıradır; Aksi takdirde, çok sıralıdır.
Sütunu bir metin türüne değiştireceğiz. Şimdi, olgu tablosunda ayarlanmış iki boyutumuzdan birine sahibiz.
İkinci boyut tablosunu yapalım. Bunun için, en son sipariş bugünün tarihinden itibaren 45 gün veya daha azsa müşteri etkin olarak görüntülenir. Bugünden itibaren 45 gün içinde herhangi bir sipariş olmazsa müşteri etkin değildir.
Özel bir sütun ekleyeceğiz ve sütunu Today olarak adlandıracağız . Ardından, bize geçerli tarih ve saati vermek için DateTime.LocalNow'u , ardından bize yalnızca tarih bölümünü vermek için Date.From'u ekleyin .
Bunu bir tarih veri türü olarak değiştirelim ve ardından sütunu öne taşıyalım.
İki tarih sütunu arasında çıkarma işlemi oluşturmanın basit bir yolu var. Sadece bu iki tarihi vurgulayın, şeritte Tarihler'e tıklayın ve ardından Günleri Çıkar'a tıklayın .
Bu size iki tarih arasındaki gün sayısı farkını verecektir. Bu yeni sütuna Bugünden Önceki Günler adını verelim .
Bir sonraki adım, her bir hesap numarası için en son sipariş anlamına gelen bugünden önceki minimum günleri bulmaktır. Bu sayı 45'ten küçük veya eşitse, etkindir.
Başka bir Group By , ardından Advanced , ardından Account Number yapalım .
Yine, yeni sütun adı için Tüm Verileri ve işlem için Tüm Satırları kullanacağız .
Bu kez, işlemi olarak Minimum ile Aradaki Minimum Günleri ve sütunu olarak Bugünden Önceki Günleri ekleyeceğiz . Bu bize en son siparişi verecektir.
Ardından All Data'yı genişletip Account Number'ı kaldırıyoruz .
Bunu genişlettiğimizde, hesap numaraları için Aradaki Minimum Günlere sahip olacağız.
Son olarak, başka bir özel sütun ekleyeceğiz ve buna Client Timing adını vereceğiz . Aradaki Min Günlerimiz 45'ten küçük veya ona eşitse, o zaman Active veya Stalled olduğu bir what-if parametresi koyacağız .
Gereksiz Sütunları Kaldırma
Artık çok sayıda destekleyici sütunumuz olduğundan, Sütun Seç'e tıklayıp ihtiyacımız olmayanları çıkaralım.
Count , Today , Days Before Today ve Min Days Between sütunlarını kaldıracağız . Artık yalnızca orijinal olgu tablosuna artı İstemci Türü ve İstemci Zamanlaması sütunlarına sahibiz .
Bunları olgu tablosunda tutmak yerine, bu tabloyu çoğaltalım.
Yinelenen tabloya Account Flags adını vereceğiz .
İşlemler tablosuna geri dönerek Client Type ve Client Timing alanlarını çıkaralım .
Artık orijinal olgu tablosuna ve Hesap Bayrakları tablosuna sahibiz.
Account Flags tablosu için Client Type ve Client Timing alanlarına ihtiyacımız olmadığı için bunları çıkarıyoruz. Sadece tüm bu alanları vurgularız, satırları kaldırırız ve kopyaları kaldırırız.
Artık önemsiz boyut tablomuz var. Geriye kalan tek şey Kapat ve Uygula'ya basmak . Bir sonraki adım , Hesap Bayrakları tablomuzdaki Hesap Numarasını, İşlemler tablomuzdaki Hesap Numarasına bağlamaktır .
İşlemler tablosu (olgu tablomuz) ile Hesap İşaretleri tablosu (çöp boyutu tablomuz) arasında bire çok ilişkimiz var.
LuckyTemplates'da Veri Modeli İlişkilerinizi Oluşturma
LuckyTemplates'da Veri Modelleme: İpuçları ve En İyi Uygulamalar
Çözüm
Client Timing ve Client Type boyutlarını tuvalimize bırakalım ve dilimleyicilere çevirelim. Artık tam olarak üyenin başlangıçta yapmak istediği şeyi yapabiliriz, yani bu niteliklere göre dilimleme.
Multi-Order'a tıklarsak, bizi sadece birden fazla siparişi olanlarla, Single-Order'a gidersek, bizi tek satın almaları olanlarla bırakır.
Özetlemek gerekirse, temelde önemsiz boyut budur ve onu nasıl yaratabilirsiniz. Veri modelinize verimli bir şekilde dahil etmek istediğiniz bir dizi çeşitli, düşük kardinalite bayrağınız varsa, bu çok kullanışlı bir tekniktir.
Tüm satırlara göre gruplama tekniği, bu önemsiz boyutları oluşturmak için son derece kullanışlıdır. Umarım bunu faydalı bulmuşsunuzdur ve her zaman olduğu gibi.
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.