Baca dalam bahasa Inggris

Bagikan melalui


TADI

Berlaku untuk: kolom terhitungTabel terhitungUkurPerhitungan visual

Mengembalikan nilai saat ini dari kolom yang ditentukan dalam lulus evaluasi luar dari kolom yang disebutkan.

EARLIER berguna untuk perhitungan berlapis di mana Anda ingin menggunakan nilai tertentu sebagai input dan menghasilkan perhitungan berdasarkan input tersebut. Di Microsoft Excel, Anda hanya bisa melakukan penghitungan tersebut dalam konteks baris saat ini; namun, di DAX Anda dapat menyimpan nilai input dan kemudian membuat perhitungan menggunakan data dari seluruh tabel.

EARLIER sebagian besar digunakan dalam konteks kolom terhitung.

Sintaksis

DAX
EARLIER(<column>, <number>)  

Parameter

Istilah Definisi
column Kolom atau ekspresi yang diselesaikan ke kolom.
num (Opsional) Angka positif ke lolos evaluasi luar.

Tingkat evaluasi berikutnya keluar diwakili oleh 1; dua tingkat keluar diwakili oleh 2 dan seterusnya.

Ketika nilai default yang dihilangkan adalah 1.

Mengembalikan nilai

Nilai baris saat ini, dari column, pada number lolos evaluasi luar.

Pengecualian

Deskripsi kesalahan

Komentar

  • EARLIER berhasil jika ada konteks baris sebelum awal pemindaian tabel. Jika tidak, kesalahan akan ditampilkan.

  • Performa EARLIER mungkin lambat karena secara teoritis, mungkin harus melakukan sejumlah operasi yang mendekati jumlah total baris (dalam kolom) kali angka yang sama (tergantung pada sintaks ekspresi). Misalnya jika Anda memiliki 10 baris di kolom, sekitar 100 operasi dapat diperlukan; jika Anda memiliki 100 baris, maka mendekati 10.000 operasi mungkin dilakukan.

  • Fungsi ini tidak didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris (RLS).

Catatan

Dalam praktiknya, mesin analitik dalam memori VertiPaq melakukan pengoptimalan untuk mengurangi jumlah perhitungan aktual, tetapi Anda harus berhati-hati saat membuat rumus yang melibatkan rekursi.

Contoh

Untuk mengilustrasikan penggunaan EARLIER, perlu untuk membangun skenario yang menghitung nilai peringkat lalu menggunakan nilai peringkat tersebut dalam perhitungan lain.

Contoh berikut didasarkan pada tabel sederhana ini, ProductSubcategory, yang menunjukkan total penjualan untuk setiap ProductSubcategory.

Tabel akhir, termasuk kolom peringkat diperlihatkan di sini.

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubkataanRanking
18 Bib-Shorts $156.167,88 18
26 Rak Sepeda $220.720,70 14
27 Stan Sepeda $35.628,69 30
28 Botol dan Kandang $59.342,43 24
5 Kurung Bawah $48.643,47 27
6 Rem $62,113.16 23
19 Topi $47.934,54 28
7 Rantai $8.847,08 35
29 Pembersih $16.882,62 32
8 Crankset $191.522,09 15
9 Derailleurs $64.965,33 22
30 Fender $41.974,10 29
10 Forks $74.727,66 21
20 Sarung tangan $228.353,58 12
4 Setang $163.257,06 17
11 Headset $57.659,99 25
31 Helm $451.192,31 9
32 Paket Hidrasi $96.893,78 20
21 Kaus $699.429,78 7
33 Lampu 36
34 Kunci $15.059,47 33
1 Sepeda Gunung $34.305.864,29 2
12 Bingkai Gunung $4.511.170,68 4
35 Panniers 36
13 Pedal $140.422,20 19
36 Pompa $12.695,18 34
2 Sepeda Jalanan $40.551.696,34 1
14 Bingkai Jalan $3.636.398,71 5
15 Pelana $52.526,47 26
22 Celana pendek $385.707,80 10
23 Kaus kaki $28.337,85 31
24 Stoking $189.179,37 16
37 Ban dan Tabung $224.832,81 13
3 Sepeda Touring $13.334.864,18 3
16 Bingkai Touring $1.545.344,02 6
25 Rompi $240,990.04 11
17 Roda $648.240,04 8

Membuat Nilai Peringkat

Salah satu cara untuk mendapatkan nilai peringkat untuk nilai tertentu dalam baris adalah dengan menghitung jumlah baris, dalam tabel yang sama, yang memiliki nilai lebih besar (atau lebih kecil) daripada yang sedang dibandingkan. Teknik ini mengembalikan nilai kosong atau nol untuk nilai tertinggi dalam tabel, sedangkan nilai yang sama akan memiliki nilai peringkat yang sama dan nilai berikutnya (setelah nilai yang sama) akan memiliki nilai peringkat non berturut-turut. Lihat sampel di bawah ini.

Kolom terhitung baru, SubCategorySalesRanking, dibuat dengan menggunakan rumus berikut.

DAX
= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1  

Langkah-langkah berikut menjelaskan metode penghitungan secara lebih rinci.

  1. Fungsi mendapatkan nilai TotalSubcategorySales untuk baris saat ini dalam tabel. Dalam hal ini, karena proses dimulai, ini adalah baris pertama dalam tabel

  2. EARLIER([TotalSubcategorySales]) mengevaluasi ke $156.167,88, baris saat ini di perulangan luar.

  3. Fungsi FILTER sekarang mengembalikan tabel di mana semua baris memiliki nilai TotalSubcategorySales lebih besar dari $156.167,88 (yang merupakan nilai saat ini untuk EARLIER).

  4. Fungsi COUNTROWS menghitung baris tabel yang difilter dan menetapkan nilai tersebut ke kolom terhitung baru di baris saat ini ditambah 1. Menambahkan 1 diperlukan untuk mencegah nilai peringkat teratas menjadi Kosong.

  5. Rumus kolom terhitung berpindah ke baris berikutnya dan mengulangi langkah 1 hingga 4. Langkah-langkah ini diulang hingga akhir tabel tercapai.

Fungsi EARLIER akan selalu mendapatkan nilai kolom sebelum operasi tabel saat ini. Jika Anda perlu mendapatkan nilai dari perulangan sebelum itu, atur argumen kedua ke 2.

fungsi EARLIEST
fungsi Filter