Konteks dalam Rumus DAX

Penting: Artikel ini adalah terjemahan mesin, lihat penafian. Temukan versi bahasa Inggris artikel di sini sebagai rujukan Anda.

Konteks memungkinkan Anda menjalankan analisis dinamis, yang dapat mengubah hasil rumus untuk menunjukkan pilihan baris atau sel saat ini serta data terkait. Pemahaman konteks dan penggunaan konteks secara efektif sangat penting untuk membuat rumus berperforma tinggi, analisis dinamis, dan mengatasi masalah dalam rumus.

Bagian ini menjelaskan berbagai jenis konteks: konteks baris, konteks kueri, dan konteks filter. Bagian ini juga menjelaskan tentang evaluasi konteks untuk rumus dalam kolom hitung dan PivotTable.

Bagian terakhir dari artikel ini menyediakan link ke contoh rinci yang menjelaskan perubahan hasil rumus berdasarkan konteks.

Memahami Konteks

Rumus di Power Pivot dapat terpengaruh oleh filter yang diterapkan di PivotTable, dengan hubungan antar tabel, dan dengan filter yang digunakan dalam rumus. Konteks adalah apa yang memungkinkan untuk melakukan analisis dinamis. Memahami konteks penting untuk penyusun dan untuk memecahkan masalah rumus.

Terdapat berbagai jenis konteks: konteks baris, konteks kueri, dan konteks filter.

Konteks baris dapat dianggap sebagai "baris saat ini". Jika Anda telah membuat kolom hitung, konteks baris terdiri atas nilai dalam masing-masing baris dan nilai dalam kolom yang terkait dengan baris saat ini. Beberapa fungsi juga tersedia (Fungsi EARLIER dan Fungsi EARLIEST) yang akan mengambil nilai dari baris saat ini, lalu menggunakan nilai tersebut sewaktu menjalankan operasi di seluruh tabel.

Konteks kueri mengacu ke subhimpunan data yang secara tidak langsung dibuat untuk setiap sel dalam PivotTable, yang tergantung pada judul baris dan kolom.

Konteks filter adalah rangkaian nilai yang dibolehkan dalam setiap kolom, berdasarkan pembatas filter yang diterapkan pada baris atau yang ditentukan oleh ekspresi filter dalam rumus.

Atas Halaman

Konteks Baris

Jika Anda membuat rumus dalam kolom hitung, konteks baris untuk rumus tersebut mencakup nilai dari seluruh kolom pada baris saat ini. Jika tabel terkait dengan tabel lain, konten juga mencakup seluruh nilai dari tabel lain tersebut yang terkait dengan baris saat ini.

Misalnya, Anda membuat kolom terhitung, = [ongkos kirim] + [pajak],

, yang menjumlahkan dua kolom dari tabel yang sama. Rumus ini akan berfungsi seperti rumus dalam tabel Excel, yang secara otomatis mereferensikan nilai dari baris yang sama. Perlu diketahui bahwa tabel berbeda dengan rentang: Anda tidak dapat mereferensikan nilai dari baris sebelum baris saat ini dengan menggunakan notasi rentang, dan Anda tidak dapat mereferensikan satu nilai arbitrer dalam tabel atau sel. Anda harus selalu menggunakan tabel dan kolom.

Konteks baris akan secara otomatis mengikuti relasi di antara tabel untuk menentukan baris dalam tabel terkait yang terhubung dengan baris saat ini.

Misalnya, rumus berikut menggunakan fungsi RELATED untuk mengambil nilai pajak dari tabel terkait, berdasarkan kawasan pengiriman pesanan. Nilai pajak ditentukan dengan menggunakan nilai untuk kawasan dalam tabel saat ini, mencari kawasan dalam tabel terkait, lalu memperoleh persentase pajak untuk kawasan tersebut dari tabel terkait.

= [Ongkos kirim] + RELATED('Region'[TaxRate])

Rumus ini akan memperoleh persentase pajak untuk kawasan saat ini, dari tabel Region. Anda tidak perlu mengetahui atau menentukan kunci yang menghubungkan tabel.

Beberapa Konteks Baris

Selain itu, DAX mencakup fungsi yang mengulangi penghitungan di seluruh tabel. Fungsi tersebut dapat berisi beberapa baris saat ini dan konteks baris saat ini. Dalam istilah pemrograman, Anda dapat membuat rumus yang berulang di loop dalam dan luar.

Misalnya, buku kerja Anda berisi produk tabel dan tabel Sales . Anda mungkin ingin melalui seluruh tabel penjualan, yang penuh transaksi yang melibatkan beberapa produk, dan menemukan jumlah terbesar diperintahkan untuk setiap produk dalam satu transaksi.

Di Excel, penghitungan ini memerlukan sejumlah ringkasan menengah, yang harus dibuat ulang jika data berubah. Jika Anda adalah pengguna Excel yang ahli, Anda mungkin dapat membuat berbagai rumus untuk menghitung. Atau, Anda dapat menulis subpilihan bersarang di database relasi.

Namun, dengan DAX Anda dapat membuat satu rumus yang akan mengembalikan nilai yang benar, dan hasil akan diperbarui secara otomatis kapan pun data ditambahkan ke tabel.

=MAXX(filter(Sales,[ProdKey]=EARLIER([ProdKey])),sales[OrderQty])

Untuk panduan rinci tentang rumus ini, lihat Fungsi EARLIER.

Singkatnya, fungsi EARLIER akan menyimpan konteks baris dari operasi yang mendahului operasi saat ini. Fungsi ini akan selalu menyimpan dua rangkaian konteks dalam memori: satu rangkaian konteks mewakili baris saat ini untuk loop dalam pada rumus, dan rangkaian konteks lain mewakili baris saat ini untuk loop luar pada rumus. DAX akan secara otomatis memasukkan nilai di antara kedua loop sehingga Anda dapat membuat agregat rumit.

Atas Halaman

Konteks Kueri

Konteks kueri mengacu ke subhimpunan data yang secara implisit diambil untuk rumus. Ketika Anda menghapus pengukuran atau bidang nilai lainnya ke dalam sel dalam PivotTable, Mesin Power Pivot mengkaji judul baris dan kolom, pemotong, dan filter laporan untuk menentukan konteks. Lalu, Power Pivot membuat penghitungan yang diperlukan untuk mengisi setiap sel dalam PivotTable. Kumpulan data yang diambil adalah konteks kueri untuk setiap sel.

Karena konteks dapat berubah, tergantung pada penempatan rumus, hasil rumus juga akan berubah, tergantung pada apakah Anda menggunakan rumus dalam PivotTable dengan berbagai pengelompokan dan filter, atau dalam kolom hitung tanpa filter dan konteks minimal.

Misalnya, Anda membuat rumus ini sederhana yang menjumlahkan nilai dalam kolom Profit table:=SUM('Sales'[Profit]) penjualan .

Jika Anda menggunakan rumus ini di kolom terhitung dalam tabel penjualan , hasil rumus akan sama untuk seluruh tabel, karena konteks kueri untuk rumus tersebut selalu seluruh kumpulan data tabel Sales . Hasil Anda akan memiliki laba untuk semua kawasan, Semua produk, Semua tahun, dan lain sebagainya.

Namun, Anda biasanya tidak ingin melihat hasil yang sama berulang kali, melainkan ingin memperoleh keuntungan untuk tahun tertentu, negara atau kawasan tertentu, produk tertentu, maupun gabungan dari semuanya, kemudian memperoleh jumlah total.

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

Atas Halaman

Konteks Filter

Konteks filter akan ditambahkan bila Anda menentukan pembatas filter pada rangkaian nilai yang dibolehkan dalam satu kolom atau tabel, dengan menggunakan argumen pada rumus. Konteks filter diterapkan di atas konteks lain, misalnya konteks baris atau konteks kueri.

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

Untuk informasi lebih lanjut tentang cara membuat filter dalam rumus, lihat Fungsi Filter (DAX).

Untuk contoh tentang cara menghapus filter untuk membuat jumlah total, lihat Fungsi ALL.

Untuk contoh tentang cara menghapus dan menerapkan filter yang dipilih dalam rumus, lihat Fungsi ALLEXCEPT.

Oleh karena itu, Anda harus memeriksa definisi pengukuran atau rumus yang digunakan dalam PivotTable agar dapat mengetahui konteks filter saat menginterpretasikan hasil rumus.

Atas Halaman

Menentukan Konteks Dalam Rumus

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

Konteks ditentukan seperti yang dijelaskan di bagian sebelumnya, dengan menggunakan tabel yang tersedia di workbook, relasi di antara tabel, dan filter apa pun yang telah diterapkan.

Misalnya, jika Anda baru saja mengimpor sejumlah data ke tabel baru dan belum menerapkan filter, seluruh rangkaian kolom dalam tabel tersebut merupakan bagian dari konteks saat ini. Jika Anda memiliki beberapa tabel yang dihubungkan oleh relasi dan menggunakan PivotTable yang telah difilter dengan menambahkan judul kolom serta menggunakan Pengiris, maka konteks akan mencakup tabel terkait dan filter pada data.

Konteks merupakan konsep canggih yang juga dapat menyulitkan dalam mengatasi masalah rumus. Sebaiknya mulai dengan rumus dan relasi sederhana untuk mengetahui cara kerja konteks, lalu mulai bereksperimen dengan rumus sederhana dalam PivotTable. Bagian berikut juga menyediakan sejumlah contoh tentang penggunaan berbagai jenis konteks dalam rumus untuk mengembalikan hasil secara dinamis.

Contoh Konteks Dalam Rumus

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

  • Fungsi FILTER memungkinkan Anda menentukan baris yang akan disertakan dalam konteks saat ini. Contoh dalam topik ini juga menjelaskan tentang cara menanamkan filter dalam fungsi lain yang menjalankan agregat.

  • Fungsi ALL akan menetapkan konteks dalam rumus. Anda dapat menggunakannya untuk mengganti filter yang diterapkan sebagai hasil dari konteks kueri.

  • Fungsi ALLEXCEPT memungkinkan Anda menghapus semua filter kecuali yang ditetapkan. Kedua topik ini mencakup contoh yang akan memandu Anda dalam membuat rumus dan memahami konteks yang rumit.

  • Fungsi EARLIER dan EARLIEST memungkinkan Anda beralih di antara tabel dengan melakukan penghitungan, sekaligus mereferensikan nilai dari loop dalam. Jika telah mengenal konsep rekursi serta loop dalam dan luar, Anda akan memahami keunggulan yang dimiliki oleh fungsi EARLIER dan EARLIEST. Jika belum memahami konsep ini, Anda harus mengikuti langkah-langkah pada contoh secara cermat untuk mengetahui penggunaan konteks dalam dan luar dalam penghitungan.

Atas Halaman

Integritas Referensial

Bagian ini membahas sejumlah konsep tingkat lanjut terkait nilai yang hilang dalam tabel Power Pivot dan terhubung dengan hubungan. Bagian ini mungkin bermanfaat jika Anda memiliki buku kerja dengan beberapa tabel dan rumus yang rumit serta menginginkan bantuan dalam memahami hasil.

Jika Anda belum memahami konsep data relasi, sebaiknya baca topik pendahuluan terlebih dulu, Ikhtisar Relasi.

Integritas Referensial dan Hubungan Power Pivot

Power Pivot tidak mengharuskan penerapan integritas referensial di antara dua tabel agar dapat menentukan relasi yang valid. Sebagai gantinya, baris kosong akan dibuat pada salah “satu” sisi dari setiap hubungan satu ke banyak dan digunakan untuk menangani seluruh baris yang tidak cocok dari tabel terkait. Baris tersebut akan berfungsi secara efektif sebagai gabungan luar SQL.

Dalam PivotTable, jika Anda mengelompokkan data menurut satu sisi relasi, data yang tidak cocok pada berbagai sisi relasi akan dikelompokkan dan akan disertakan dalam total dengan judul baris yang kosong. Judul yang kosong kira-kira setara dengan "anggota yang tidak diketahui".

Memahami Anggota yang Tidak Diketahui

Konsep anggota yang tidak diketahui mungkin Anda kenal jika pernah bekerja dengan sistem database multidimensi, seperti SQL Server Analysis Services. Jika istilah ini baru bagi Anda, contoh berikut akan menjelaskan tentang anggota yang tidak diketahui dan pengaruhnya terhadap penghitungan.

Misalnya, Anda membuat penghitungan yang menjumlahkan penjualan bulanan untuk setiap penyimpanan, tapi kolom dalam tabel penjualan hilang nilai untuk nama toko. Mengingat bahwa tabel untuk menyimpan dan penjualan tersambung dengan nama toko, apa yang akan Anda harapkan terjadi dalam rumus? Bagaimana harus PivotTable grup atau menampilkan angka penjualan yang tidak terkait dengan penyimpanan yang sudah ada?

Masalah ini biasa terjadi di tempat penyimpanan data, yang mengharuskan agar tabel besar berisi data sebenarnya terkait secara logis dengan tabel dimensi yang berisi informasi tentang toko, kawasan, serta atribut lain yang digunakan untuk mengkategorikan dan menghitung fakta. Agar dapat menyelesaikan masalah, fakta baru yang tidak terkait dengan entitas yang ada akan ditetapkan ke anggota yang tidak diketahui untuk sementara. Oleh karena itu, fakta yang tidak terkait akan ditampilkan secara berkelompok dalam PivotTable di bawah judul yang kosong.

Penanganan Nilai Kosong Dibandingkan Dengan Baris Kosong

Nilai kosong berbeda dengan baris kosong yang ditambahkan untuk mengakomodasi anggota yang tidak diketahui. Nilai kosong adalah nilai khusus yang digunakan untuk mewakili null, string yang kosong, dan nilai lain yang tidak ada. Untuk informasi lebih lanjut tentang nilai kosong, serta tipe data DAX lain, lihat Tipe data dalam Model Data.

Atas Halaman

Catatan: Penafian Terjemahan Mesin: Artikel ini telah diterjemahan oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan terjemahan mesin ini untuk membantu pengguna yang bukan penutur bahasa Inggris agar dapat menikmati konten tentang produk, layanan, dan teknologi Microsoft. Karena artikel ini diterjemahkan oleh mesin, mungkin akan terdapat kesalahan kosa kata, sintaksis, atau tata bahasa.

Kembangkan keterampilan 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.

×