Excel DAX - Konteks Evaluasi
Di DAX, konteks adalah istilah penting yang harus Anda ketahui, saat menulis rumus DAX. Juga disebut sebagaievaluation context, Konteks DAX digunakan untuk menentukan evaluasi rumus DAX dan hasil yang sesuai. Artinya, hasil rumus DAX bisa berbeda-beda sesuai dengan konteksnya. Anda harus memahami dengan jelas bagaimana konteks DAX tertentu digunakan dan bagaimana hasilnya bisa berbeda.
Konteks evaluasi memungkinkan Anda melakukan analisis dinamis, di mana hasil rumus DAX bisa berubah untuk mencerminkan baris saat ini atau pilihan sel dan juga data terkait. Memahami konteks dan menggunakan konteks secara efektif sangat penting untuk menyusun rumus DAX yang kuat, melakukan analisis data dinamis, dan memecahkan masalah dalam rumus DAX. Konteks evaluasi adalah dasar dari semua fitur tingkat lanjut DAX yang perlu Anda kuasai untuk membuat laporan analisis data yang kompleks.
Saat Anda terus merujuk ke fungsi DAX untuk penggunaan yang relevan dalam rumus DAX, Anda perlu merujuk ke bab ini tentang konteks DAX untuk mendapatkan kejelasan tentang hasil.
Jenis konteks di DAX
DAX mendukung konteks evaluasi berikut -
- Konteks Baris
- Filter Konteks
Saat rumus DAX dievaluasi, semua konteks akan dipertimbangkan dan diterapkan jika relevan. Konteksnya ada bersama dan hasil rumus akan berbeda berdasarkan konteks yang digunakan saat menghitung nilai. Misalnya, saat Anda memilih bidang untuk baris, kolom, dan filter dalam PivotTable, subtotal dihitung secara dinamis berdasarkan baris dan kolom mana yang terkait dengan subtotal / total dan nilai dalam baris dan kolom ditentukan oleh filter. bekas.
Konteks Baris
Konteks baris berarti bahwa rumus DAX atau fungsi DAX mengetahui baris mana dari tabel yang dirujuknya pada titik waktu mana pun. Anda dapat mempertimbangkan konteks baris sebagai baris saat ini. Rumusnya akan dihitung baris demi baris dengan konteks baris.
Beberapa fungsi DAX (misalnya, X-functions, FILTER ()) dan semua kolom terhitung memiliki konteks baris. Misalnya, jika Anda membuat kolom terhitung Tahun dengan rumus DAX = TAHUN ([Tanggal]), nilai kolom terhitung diperoleh dengan menerapkan rumus DAX tertentu pada kolom tertentu dalam tabel, baris demi baris.
Ini berarti bahwa jika Anda telah membuat kolom terhitung, konteks baris terdiri dari nilai di setiap baris dan nilai di kolom yang terkait dengan baris saat ini, seperti yang ditentukan oleh rumus DAX yang digunakan. Meskipun rumus DAX tidak berisi referensi ke sebuah baris, DAX secara implisit memahami konteks baris saat menghitung nilai.
DAX membuat konteks baris secara otomatis saat Anda menentukan kolom terhitung dan semua nilai terhitung dengan rumus DAX yang digunakan akan muncul di kolom terhitung.
Sebaliknya, saat Anda memiliki fungsi DAX seperti SUMX, nilai yang dihitung baris demi baris dijumlahkan dan hanya hasil akhirnya yang akan ditampilkan. Artinya, nilai perantara dibuang.
Saat Anda memiliki tabel terkait, konteks baris menentukan baris mana dalam tabel terkait yang terkait dengan baris saat ini. Namun, konteks baris tidak menyebar melalui hubungan secara otomatis. Anda harus menggunakan fungsi DAX - RELATED dan RELATEDTABLE untuk ini.
Konteks Beberapa Baris
DAX memiliki fungsi iterator seperti SUMX. Anda dapat menggunakan fungsi ini untuk menyarangkan konteks baris. Dengan ini, secara terprogram Anda dapat memiliki rekursi melalui loop dalam dan loop luar, di mana Anda dapat memiliki beberapa baris saat ini dan konteks baris saat ini.
Misalnya, Anda bisa menggunakan fungsi DAX Earlier () yang menyimpan konteks baris dari operasi yang mendahului operasi saat ini. Fungsi ini menyimpan dua set konteks dalam memori - satu set konteks mewakili baris saat ini untuk pengulangan dalam rumus, dan sekumpulan konteks lainnya mewakili baris saat ini untuk pengulangan luar rumus. DAX secara otomatis memasukkan nilai di antara dua loop sehingga Anda bisa membuat agregat kompleks.
Sebagai contoh, lihat skenario - Membuat Rumus DAX yang Secara Dinamis Memberi Peringkat Nilai di Bab Skenario - Memberi Peringkat dan Membandingkan Nilai.
Filter Konteks
Konteks filter merujuk ke pemfilteran apa pun yang diterapkan ke Model Data di DAX. Konteks filter dibuat oleh PivotTable dan juga oleh fungsi DAX.
Filter Konteks Dibuat oleh PivotTable
Konteks Filter yang dibuat oleh PivotTable adalah pemfilteran alami yang diterapkan oleh pilihan yang dibuat pada bidang PivotTable dari berikut ini -
- Rows
- Columns
- Filters
- Slicers
Konteks filter yang dibuat oleh PivotTable, memfilter tabel yang mendasari dalam Model Data. Jika tabel terkait, filter mengalir ke bawah dari tabel pencarian ke tabel data. Artinya, Anda bisa memfilter tabel data berdasarkan hasil dari tabel pencarian. Propagasi filter tidak terjadi sebaliknya. Namun, Anda bisa menggunakan rumus DAX untuk memfilter tabel pencarian berdasarkan hasil dari tabel data.
Filter Konteks Dibuat oleh Fungsi DAX
Anda dapat menggunakan fungsi Filter DAX untuk menentukan bidang terhitung dan kolom terhitung, yang berisi ekspresi filter yang mengontrol nilai yang digunakan oleh rumus DAX. Bidang terhitung dan kolom terhitung ini kemudian menjadi bagian dari daftar bidang PivotTable dan Anda bisa menambahkannya ke PivotTable. Anda juga dapat menghapus filter secara selektif pada kolom tertentu dengan fungsi Filter DAX ini. Contoh fungsi Filter DAX yang andal untuk membuat Konteks Filter adalah HITUNG (). Sebagai contoh, lihat bab Skenario - Melakukan Perhitungan Kompleks.
Filter Konteks sebagai Tambahan pada Konteks Baris
Konteks baris tidak secara otomatis membuat konteks filter. Anda bisa mencapai hal yang sama dengan rumus DAX yang berisi fungsi Filter DAX.