EARLIER İşlevi
Belirtilen sütunun, söz konusu sütunun daha dıştaki bir değerlendirme geçişindeki geçerli değerini döndürür.
EARLIER, giriş olarak belirli bir değer kullanmak ve bu girişe dayanan hesaplamalar oluşturmak istediğiniz iç içe yerleştirilen hesaplamalar için kullanışlıdır. Microsoft Excel'de bu tür hesaplamaları yalnızca geçerli satır bağlamında yapabilirsiniz; ancak DAX'ta girişin değerini depolayabilir ve hesaplamayı bütün tablonun verilerini kullanarak yapabilirsiniz.
EARLIER çoğunlukla hesaplanmış sütunlar bağlamında kullanılır.
Sözdizimi
EARLIER(<column>, <number>)
Parametreler
Terim |
Tanım |
---|---|
column |
Bir sütun olarak çözümlenen sütun veya ifade. |
num |
(İsteğe bağlı) Daha dıştaki değerlendirme geçişini gösteren pozitif bir sayı. Bir düzey dışarıdaki değerlendirme 1 ile, iki düzey dışarıdaki değerlendirme 2 ile gösterilir ve benzeri şekilde sürer. Atlandığında, varsayılan değer 1'dir. |
Özellik Değeri/Dönüş Değeri
Sayı düzeyindeki dış değerlendirme geçişinde, sütundaki satırın geçerli değeri.
Kural dışı durumlar
Hataların açıklaması
Açıklamalar
Tablo taramasının başlangıcından önce bir satır bağlamı varsa, EARLIER işlevi başarılı olur. Aksi takdirde hata döndürür.
EARLIER işlevinin, gerçekleştirmesi gereken işlem sayısı yaklaşık olarak toplam satır sayısı (sütundaki) ile aynı sayının (ifadenin sözdizimine bağlı olarak) çarpımına eşit olabileceğinden, performansı yavaş olabilir. Örneğin sütunda 10 satırınız varsa, yaklaşık 100 işlem gerekebilir; 100 satırınız varsa, yaklaşık 10.000 işlem gerçekleştiriliyor olabilir.
[!NOT]
Uygulamada xVelocity bellek içi analitiği altyapısı (VertiPaq), gerçek hesaplama sayısını azaltmak için iyileştirmeler yapar, ancak özyineleme içeren formüller oluştururken dikkatli olmanız gerekir.
Örnek
EARLIER işlevinin kullanımını göstermek için bir sıra değeri hesaplayan ve sonra bu sıra değerini diğer hesaplamalarda kullanan bir senaryo oluşturmanız gerekir.
Aşağıdaki örnek bu basit ProductSubcategory tablosunu temel alır ve her ProductSubcategory için toplam satışları gösterir.
Sıralama sütununu da içeren son tablo burada gösterilir.
ProductSubcategoryKey |
EnglishProductSubcategoryName |
TotalSubcategorySales |
SubcategoryRanking |
---|---|---|---|
18 |
Bisiklet Şortu |
$156,167.88 |
18 |
26 |
Bisiklet Askısı |
$220,720.70 |
14 |
27 |
Bisiklet Standı |
$35,628.69 |
30 |
28 |
Şişe ve Şişe Askısı |
$59,342.43 |
24 |
5 |
Bilyeli Alt Yatak |
$48,643.47 |
27 |
6 |
Fren |
$62,113.16 |
23 |
19 |
Başlık |
$47,934.54 |
28 |
7 |
Zincir |
$8,847.08 |
35 |
29 |
Temizleme Malzemesi |
$16,882.62 |
32 |
8 |
Krank Seti |
$191,522.09 |
15 |
9 |
Derayör |
$64,965.33 |
22 |
30 |
Çamurluk |
$41,974.10 |
29 |
10 |
Çatal |
$74,727.66 |
21 |
20 |
Eldiven |
$228,353.58 |
12 |
4 |
Gidon |
$163,257.06 |
17 |
11 |
Gidon Bağlantı Parçası |
$57,659.99 |
25 |
31 |
Kask |
$451,192.31 |
9 |
32 |
Hidrasyon Paketi |
$96,893.78 |
20 |
21 |
Süveter |
$699,429.78 |
7 |
33 |
Işık |
|
36 |
34 |
Kilit |
$15,059.47 |
33 |
1 |
Dağ Bisikleti |
$34,305,864.29 |
2 |
12 |
Dağ Bisikleti Kadrosu |
$4,511,170.68 |
4 |
35 |
Sepet |
|
36 |
13 |
Pedal |
$140,422.20 |
19 |
36 |
Pompa |
$12,695.18 |
34 |
2 |
Yol Bisikleti |
$40,551,696.34 |
1 |
14 |
Yol Bisikleti Kadrosu |
$3,636,398.71 |
5 |
15 |
Sele |
$52,526.47 |
26 |
22 |
Şort |
$385,707.80 |
10 |
23 |
Çorap |
$28,337.85 |
31 |
24 |
Tayt |
$189,179.37 |
16 |
37 |
Lastik ve İç Lastik |
$224,832.81 |
13 |
3 |
Tur Bisikleti |
$13,334,864.18 |
3 |
16 |
Tur Bisikleti Kadrosu |
$1,545,344.02 |
6 |
25 |
Yelek |
$240,990.04 |
11 |
17 |
Tekerlek |
$648,240.04 |
8 |
Sıra Değeri Oluşturma
Satırda verilen değer için bir sıra değeri elde etme yöntemlerinden biri, aynı tabloda, karşılaştırılmakta olandan daha büyük (veya daha küçük) değere sahip olan satırların sayısını saymaktır. Bu teknik tablodaki en büyük değer için boşluk veya sıfır değeri döndürür, oysa ki eşit değerler aynı sıra değerine, sonraki değer ise (eşit değerlerden sonraki) ardışık olmayan bir sıra değerine sahip olacaktır. Aşağıdaki örneğe bakın.
Aşağıdaki formül kullanılarak, yeni bir hesaplanmış SubCategorySalesRanking sütunu oluşturulur.
= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1
Aşağıdaki adımlar hesaplama yöntemini daha ayrıntılı olarak açıklar.
EARLIER işlevi, tablodaki geçerli satır için TotalSubcategorySales değerini alır. Bu durumda, işlem başladığından bu değer tablodaki ilk satır olur.
EARLIER([TotalSubcategorySales]) daha dışarıdaki döngüdeki geçerli satır olan 156.167,88$ olarak değerlendirilir.
FILTER işlevi şimdi tüm satırlarının TotalSubcategorySales değeri 156.167,88$'dan büyük olan bir tablo döndürür (bu, EARLIER için geçerli değerdir).
COUNTROWS işlevi filtre uygulanan tablonun satırlarını sayar ve bu değeri, geçerli satırın sırasına 1 ekleyerek bulduğu satırdaki yeni hesaplanmış sütuna atar. En üst sıradaki değerin Boşluk haline gelmesini engellemek için 1 eklenmesi gerekir.
Hesaplanmış sütun formülü sonraki satıra taşınır ve 1 ile 4 arasındaki adımlar yinelenir. Bu adımlar, tablonun sonuna erişilinceye kadar yinelenir.
EARLIER işlevi, her zaman geçerli tablo işleminden önceki sütun değerini alır. Döngüden bundan önce bir değer almanız gerekiyorsa, ikinci bağımsız değişkeni 2 olarak ayarlayın.