Konteks dalam Rumus DAX

Konteks memungkinkan Anda melakukan analisis dinamis, di mana hasil dari rumus bisa berubah untuk mencerminkan baris atau pilihan sel saat ini dan juga data terkait. Memahami konteks dan menggunakan konteks secara efektif sangat penting untuk menyusun rumus berperforma tinggi yang dinamis, dan untuk memecahkan masalah dalam rumus.

Bagian ini menentukan tipe konteks yang berbeda: konteks baris, konteks kueri, dan konteks filter. Ini menjelaskan bagaimana konteks dievaluasi untuk rumus dalam kolom terhitung dan di PivotTable.

Bagian terakhir dari artikel ini menyediakan link ke contoh mendetail yang mengilustrasikan bagaimana hasil rumus berubah sesuai dengan konteks.

Memahami konteks

Rumus di Power Pivot bisa dipengaruhi oleh filter yang diterapkan dalam PivotTable, berdasarkan hubungan antara tabel, dan dengan filter yang digunakan dalam rumus. Konteks adalah yang memungkinkan untuk melakukan analisis dinamis. Memahami konteks penting untuk pembuatan dan pemecahan masalah rumus.

Ada berbagai tipe konteks: konteks baris, konteks kueri, dan konteks filter.

Konteks baris bisa dianggap sebagai "baris saat ini." Jika Anda telah membuat kolom terhitung, konteks baris terdiri dari nilai dalam setiap baris dan nilai dalam kolom yang terkait dengan baris saat ini. Ada juga beberapa fungsi (sebelumnya dan yang paling awal) yang mendapatkan nilai dari baris saat ini dan menggunakan nilai tersebut saat melakukan operasi di seluruh tabel.

Konteks kueri merujuk ke subset data yang secara implisit dibuat untuk setiap sel dalam PivotTable, tergantung pada header baris dan kolom.

Konteks filter adalah sekumpulan nilai yang diperbolehkan di setiap kolom, berdasarkan batasan filter yang diterapkan ke baris atau yang ditentukan oleh ekspresi filter dalam rumus.

Atas Halaman

Konteks baris

Jika Anda membuat rumus di kolom terhitung, konteks baris untuk rumus tersebut menyertakan nilai dari semua kolom di baris saat ini. Jika tabel terkait dengan tabel lain, konten juga menyertakan semua nilai dari tabel lain yang terkait dengan baris saat ini.

Misalnya, Anda membuat kolom terhitung, = [Freight] + [Tax],

, yang menambahkan dua kolom dari tabel yang sama. Rumus ini berperilaku seperti rumus dalam tabel Excel, yang secara otomatis mereferensikan nilai dari baris yang sama. Perhatikan bahwa tabel berbeda dari rentang: Anda tidak bisa mereferensikan nilai dari baris sebelum baris saat ini dengan menggunakan notasi rentang, dan Anda tidak bisa mereferensikan nilai tunggal arbitrer apa pun dalam tabel atau sel. Anda harus selalu bekerja dengan tabel dan kolom.

Konteks baris secara otomatis mengikuti hubungan antara tabel untuk menentukan baris mana dalam tabel terkait yang terkait dengan baris saat ini.

Misalnya, rumus berikut ini menggunakan fungsi terkait untuk mengambil nilai pajak dari tabel terkait, berdasarkan kawasan tempat pesanan dikirimkan. Nilai pajak ditentukan dengan menggunakan nilai untuk wilayah dalam tabel saat ini, mencari area di tabel terkait, lalu mendapatkan tarif pajak untuk wilayah tersebut dari tabel terkait.

= [Freight] + RELATED (' region ' [TaxRate])

Rumus ini hanya mendapatkan tarif pajak untuk kawasan saat ini, dari tabel kawasan. Anda tidak perlu mengetahui atau menentukan kunci yang menyambungkan tabel.

Beberapa konteks baris

Selain itu, DAX menyertakan fungsi yang mengulangi penghitungan di atas tabel. Fungsi ini bisa memiliki beberapa baris saat ini dan konteks baris saat ini. Dalam istilah pemrograman, Anda bisa membuat rumus yang berulang di atas pengulangan dalam dan luar.

Misalnya, misalkan buku kerja Anda berisi tabel produk dan tabel penjualan . Anda mungkin ingin menelusuri seluruh tabel penjualan, yang penuh dengan transaksi yang melibatkan beberapa produk, dan menemukan kuantitas terbesar yang dipesan untuk setiap produk dalam satu transaksi.

Di Excel, perhitungan ini memerlukan serangkaian ringkasan menengah, yang harus dibangun kembali jika data berubah. Jika Anda adalah pengguna Power Excel, Anda mungkin bisa membuat rumus array yang akan melakukan pekerjaan tersebut. Alternatifnya, dalam database relasional Anda dapat menulis subpilihan bertumpuk.

Namun, dengan DAX Anda bisa membuat satu rumus yang mengembalikan nilai yang benar, dan hasilnya secara otomatis diperbarui setiap kali Anda menambahkan data ke tabel.

= MAXX (FILTER (Sales, [ProdKey] = sebelumnya ([ProdKey])), sales [OrderQty])

Untuk panduan mendetail tentang rumus ini, lihat yang lebih lama.

Singkatnya, fungsi yang lebih lama menyimpan konteks baris dari operasi yang mendahului operasi saat ini. Setiap saat, fungsi menyimpan dalam memori dua set konteks: satu set konteks mewakili baris saat ini untuk pengulangan dalam rumus, dan sekumpulan konteks lainnya mewakili baris saat ini untuk pengulangan luar rumus. DAX otomatis memberikan nilai di antara dua pengulangan sehingga Anda dapat membuat agregat kompleks.

Atas Halaman

Konteks kueri

Konteks kueri merujuk ke subset data yang diambil secara implisit untuk rumus. Saat Anda menjatuhkan bidang pengukuran atau nilai lainnya ke dalam sel dalam PivotTable, Mesin Power Pivot akan memeriksa header baris dan kolom, pemotong, dan filter laporan untuk menentukan konteks. Lalu, Power Pivot membuat perhitungan yang diperlukan untuk mengisi setiap sel di PivotTable. Kumpulan data yang diambil adalah konteks kueri untuk setiap sel.

Karena konteks bisa berubah tergantung pada tempat Anda meletakkan rumus, hasil rumus juga berubah tergantung pada apakah Anda menggunakan rumus dalam PivotTable dengan banyak pengelompokan dan filter, atau dalam kolom terhitung tanpa filter dan konteks minimal.

Misalnya, Anda membuat rumus sederhana yang menjumlahkan nilai dalam kolom profit dari tabel Sales : = Sum (' Sales ' [profit]).

Jika Anda menggunakan rumus ini di kolom terhitung dalam tabel penjualan , hasil untuk rumus akan sama untuk seluruh tabel, karena konteks kueri untuk rumus selalu merupakan seluruh rangkaian data tabel penjualan . Hasil Anda akan memiliki keuntungan untuk semua kawasan, Semua produk, Semua tahun, dan seterusnya.

Namun, biasanya Anda tidak ingin melihat hasil yang sama ratusan kali, tapi sebaliknya Anda ingin mendapatkan laba untuk tahun tertentu, negara atau kawasan tertentu, produk tertentu, atau beberapa kombinasi dari ini, lalu mendapatkan Total keseluruhan.

Dalam PivotTable, mudah untuk mengubah konteks dengan menambahkan atau menghapus header kolom dan baris dan dengan menambahkan atau menghapus pemotong. Anda dapat membuat rumus seperti yang di atas, dalam ukuran, lalu menjatuhkannya ke dalam PivotTable. Setiap kali Anda menambahkan judul kolom atau baris ke PivotTable, Anda mengubah konteks kueri di mana pengukuran dievaluasi. Memotong dan memfilter operasi juga mempengaruhi konteks. Oleh karena itu, rumus yang sama, yang digunakan dalam PivotTable, dievaluasi dalam konteks kueri yang berbeda untuk setiap sel.

Atas Halaman

Memfilter konteks

Konteks filter ditambahkan saat Anda menentukan batasan filter pada sekumpulan nilai yang diperbolehkan dalam kolom atau tabel, dengan menggunakan argumen ke rumus. Konteks filter berlaku di atas konteks lain, seperti konteks baris atau konteks kueri.

Misalnya, PivotTable menghitung nilainya untuk setiap sel berdasarkan judul baris dan kolom, seperti yang diuraikan di bagian sebelumnya pada konteks kueri. Namun, dalam kolom pengukuran atau terhitung yang Anda tambahkan ke PivotTable, Anda bisa menentukan ekspresi filter untuk mengontrol nilai yang digunakan oleh rumus. Anda juga bisa menghapus filter pada kolom tertentu.

Untuk informasi selengkapnya tentang cara membuat filter dalam rumus, lihat fungsi filter.

Untuk contoh cara menghapus filter untuk membuat total keseluruhan, lihat semua.

Untuk contoh cara untuk secara selektif menghapus dan menerapkan filter dalam rumus, lihat fungsi Allexcept.

Oleh karena itu, Anda harus meninjau definisi pengukuran atau rumus yang digunakan dalam PivotTable sehingga Anda mengetahui konteks filter ketika menafsirkan hasil rumus.

Atas Halaman

Menentukan konteks dalam rumus

Saat Anda membuat rumus, Power Pivot untuk Excel terlebih dahulu memeriksa sintaks umum, lalu memeriksa nama kolom dan tabel yang Anda berikan dari kemungkinan kolom dan tabel dalam konteks saat ini. Jika Power Pivot tidak bisa menemukan kolom dan tabel yang ditentukan oleh rumus, Anda akan mendapatkan kesalahan.

Konteks ditentukan seperti yang diuraikan di bagian sebelumnya, dengan menggunakan tabel yang tersedia dalam buku kerja, setiap hubungan antara tabel, dan filter apa pun yang telah diterapkan.

Misalnya, jika Anda baru saja mengimpor beberapa data ke dalam tabel baru dan belum menerapkan filter apa pun, seluruh kumpulan kolom dalam tabel adalah bagian dari konteks saat ini. Jika Anda memiliki beberapa tabel yang ditautkan oleh hubungan dan Anda sedang bekerja dalam PivotTable yang telah difilter dengan menambahkan judul kolom dan menggunakan pemotong, konteks menyertakan tabel terkait dan filter apa pun pada data.

Konteks adalah konsep yang kuat yang juga bisa menyulitkan untuk memecahkan masalah rumus. Kami menyarankan agar Anda mulai dengan rumus dan hubungan sederhana untuk melihat bagaimana konteks bekerja, lalu mulai bereksperimen dengan rumus sederhana di PivotTable. Bagian berikut ini juga menyediakan beberapa contoh bagaimana rumus menggunakan tipe konteks yang berbeda untuk hasil yang dikembalikan secara dinamis.

Contoh konteks dalam rumus

  • Fungsi RELATED memperluas konteks baris saat ini untuk menyertakan nilai dalam kolom terkait. Ini memungkinkan Anda melakukan pencarian. Contoh dalam topik ini mengilustrasikan interaksi pemfilteran dan konteks baris.

  • Fungsi FILTER memungkinkan Anda menentukan baris yang akan disertakan dalam konteks saat ini. Contoh dalam topik ini juga mengilustrasikan cara menyematkan filter dalam fungsi lain yang melakukan agregat.

  • Fungsi ALL mengatur konteks dalam rumus. Anda dapat menggunakannya untuk mengesampingkan filter yang diterapkan sebagai hasil dari konteks kueri.

  • Fungsi ALLEXCEPT memungkinkan Anda menghapus semua filter kecuali yang Anda tentukan. Kedua topik menyertakan contoh yang memandu Anda dalam menyusun rumus dan memahami konteks kompleks.

  • Fungsi yang lebih lama dan paling awal memungkinkan Anda mengulang tabel dengan melakukan penghitungan, saat mereferensikan nilai dari pengulangan dalam. Jika Anda terbiasa dengan konsep rekursi dan dengan pengulangan dalam dan luar, Anda akan menghargai kekuatan yang disediakan fungsi sebelumnya dan paling awal. Jika Anda baru ke konsep ini, Anda harus mengikuti langkah-langkah dalam contoh dengan seksama untuk melihat bagaimana konteks dalam dan luar digunakan dalam penghitungan.

Atas Halaman

Integritas referensial

Bagian ini membahas beberapa konsep tingkat lanjut terkait dengan nilai yang hilang dalam Power Pivot tabel yang tersambung dengan hubungan. Bagian ini mungkin berguna bagi Anda jika Anda memiliki buku kerja dengan beberapa tabel dan rumus kompleks dan menginginkan bantuan dalam memahami hasilnya.

Jika Anda baru mengenal konsep data relasional, kami menyarankan agar Anda terlebih dahulu membaca topik pendahuluan, gambaran umum hubungan.

Integritas referensial dan hubungan Power Pivot

Power Pivot tidak mengharuskan integritas referensial diberlakukan di antara dua tabel untuk menentukan hubungan yang valid. Sebagai gantinya, baris kosong dibuat pada akhir "satu" dari setiap hubungan satu-ke-banyak dan digunakan untuk menangani semua baris yang tidak cocok dari tabel terkait. Secara efektif bertindak sebagai gabungan luar SQL.

Di PivotTable, jika Anda mengelompokkan data di satu sisi hubungan, setiap data yang tidak cocok pada banyak sisi hubungan dikelompokkan bersama-sama dan akan disertakan dalam total dengan judul baris kosong. Judul kosong kira-kira setara dengan "anggota tidak diketahui."

Memahami anggota yang tidak diketahui

Konsep dari anggota yang tidak diketahui mungkin akrab bagi Anda jika Anda telah bekerja dengan sistem Multidimensional database, seperti SQL Server Analysis Services. Jika istilah baru untuk Anda, contoh berikut ini menjelaskan apa yang tidak diketahui dan bagaimana pengaruhnya terhadap perhitungan.

Misalkan Anda membuat perhitungan yang menjumlahkan penjualan bulanan untuk setiap toko, tapi kolom dalam tabel penjualan hilang nilai untuk nama toko. Mengingat bahwa tabel untuk penyimpanan dan penjualan dihubungkan oleh nama toko, apa yang Anda harapkan terjadi dalam rumus? Bagaimana seharusnya grup PivotTable atau menampilkan angka penjualan yang tidak terkait dengan toko yang sudah ada?

Masalah ini adalah yang umum di gudang data, di mana tabel data yang besar harus terkait secara logis dengan tabel dimensi yang berisi informasi tentang toko, kawasan, dan atribut lainnya yang digunakan untuk mengkategorikan dan menghitung fakta. Untuk mengatasi masalah ini, setiap fakta baru yang tidak terkait dengan entitas yang sudah ada sementara ditetapkan ke anggota yang tidak diketahui. Itulah sebabnya fakta yang tidak terkait akan muncul dikelompokkan dalam PivotTable di bawah judul kosong.

Pengobatan nilai kosong vs. baris kosong

Nilai kosong berbeda dari baris kosong yang ditambahkan untuk mengakomodasi anggota yang tidak diketahui. Nilai kosong adalah nilai khusus yang digunakan untuk mewakili nulls, string kosong, dan nilai lain yang hilang. Untuk informasi selengkapnya tentang nilai kosong, serta tipe data DAX lainnya, lihat tipe data dalam model data.

Atas Halaman

Catatan:  Halaman ini diterjemahkan menggunakan mesin dan mungkin terdapat kesalahan tata bahasa atau masalah keakuratan. Kami bertujuan menyediakan konten yang bermanfaat untuk Anda. Dapatkah Anda memberi tahu kami apakah informasi ini bermanfaat untuk Anda? Berikut adalah artikel dalam bahasa Inggris untuk referensi.

Kembangkan keterampilan Office Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×