Konteks dalam Rumus DAX

Catatan: Kami ingin secepatnya menyediakan konten bantuan terbaru dalam bahasa Anda. 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 di bagian bawah halaman ini? Berikut artikel dalam bahasa Inggris untuk referensi.

Konteks memungkinkan Anda melakukan analisis dinamis, di mana hasil rumus dapat mengubah untuk mencerminkan pilihan baris atau sel saat ini dan juga data apa pun terkait. Memahami konteks dan menggunakan konteks secara efektif yang sangat penting untuk menyusun rumus berkinerja tinggi, analisis dinamis, dan untuk pemecahan masalah dalam rumus.

Bagian ini menentukan berbagai jenis konteks: baris konteks, konteks kueri, dan konteks filter. Ini menjelaskan bagaimana konteks dievaluasi untuk rumus di kolom terhitung dan dalam 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: baris konteks, konteks kueri, dan konteks filter.

Konteks baris dapat dianggap sebagai "baris saat ini." Jika Anda telah membuat kolom terhitung, konteks baris terdiri dari nilai dalam setiap baris individual dan nilai dalam kolom yang terkait dengan baris saat ini. Ada juga beberapa fungsi (EARLIER dan EARLIEST) yang mendapatkan nilai dari baris saat ini dan lalu menggunakan nilai tersebut ketika melakukan operasi melalui seluruh tabel.

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

Konteks filter adalah sekumpulan nilai diperbolehkan dalam 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 dalam 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] + [pajak],

, yang menambahkan bersama-sama dua kolom dari tabel yang sama. Rumus ini berlaku seperti rumus dalam tabel Excel, yang secara otomatis referensi 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 apa pun sewenang-wenang dalam tabel atau sel. Anda harus selalu bekerja dengan tabel dan kolom.

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

Misalnya, rumus berikut menggunakan fungsi terkait untuk mengambil pajak nilai dari tabel terkait, berdasarkan kawasan yang urutan dikirim ke. Nilai pajak yang ditentukan dengan menggunakan nilai untuk kawasan di tabel saat ini, mencari kawasan dalam tabel terkait, dan lalu mendapatkan tarif pajak untuk kawasan tersebut dari tabel terkait.

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

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

Beberapa konteks baris

Selain itu, DAX menyertakan fungsi yang iterasi penghitungan atas suatu tabel. Fungsi ini bisa memiliki beberapa baris saat ini dan konteks baris saat ini. Dalam pemrograman istilah, Anda bisa membuat rumus yang rekursif melalui loop dalam dan luar.

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

Di Excel, perhitungan ini memerlukan serangkaian ringkasan menengah, yang harus disusun ulang jika data berubah. Jika Anda adalah pengguna power Excel, Anda mungkin dapat membangun rumus array yang akan melakukan pekerjaan. Selain itu, dalam database relasional, Anda bisa menuliskan subselects bertumpuk.

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

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

Untuk panduan rinci tentang rumus ini, lihat EARLIER.

Singkatnya, fungsi EARLIER menyimpan konteks baris dari operasi yang didahului operasi saat ini. At sepanjang waktu, fungsi Toko di dalam memori dua kumpulan konteks: satu sekumpulan konteks mewakili baris saat ini untuk loop dalam rumus, dan kumpulan lain konteks mewakili baris saat ini untuk pengulangan luar rumus. DAX secara otomatis umpan nilai antara dua loop sehingga Anda bisa membuat kompleks agregat.

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 meneliti header baris dan kolom, pemotong dan filter laporan untuk menentukan konteks. Lalu, Power Pivot membuat penghitungan diperlukan untuk mengisi setiap sel dalam PivotTable. Kumpulan data yang diambil adalah konteks kueri untuk setiap sel.

Karena konteks dapat berubah tergantung pada tempat Anda menempatkan rumus, hasil rumus juga mengubah bergantung pada apakah Anda menggunakan rumus dalam PivotTable dengan filter dan pengelompokan, atau dalam kolom terhitung dengan tidak ada filter dan minimal konteks.

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 untuk rumus tersebut akan sama untuk seluruh tabel, karena konteks kueri untuk rumus tersebut selalu seluruh rangkaian data pada tabel Sales . Hasil Anda akan memiliki laba untuk semua kawasan, Semua produk, Semua tahun, dan seterusnya.

Namun, biasanya Anda tidak ingin melihat hasil yang sama ratusan kali, tetapi Anda ingin mendapatkan keuntungan untuk tahun tertentu, tertentu negara atau kawasan, dengan produk tertentu, atau beberapa kombinasi ini, dan mendapatkan total keseluruhan.

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

Atas Halaman

Memfilter konteks

Konteks filter ditambahkan saat Anda menentukan filter batasan pada rangkaian nilai diperbolehkan dalam kolom atau tabel, menggunakan argumen untuk rumus. Konteks filter berlaku atas konteks, seperti konteks baris atau konteks kueri lain.

Misalnya, PivotTable menghitung nilainya 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 selengkapnya tentang cara membuat filter dalam rumus, lihat fungsi Filter.

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

Untuk contoh tentang cara selektif Kosongkan dan menerapkan filter dalam rumus, lihat Fungsi ALLEXCEPT.

Oleh karena itu, Anda harus meninjau 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 terlebih dahulu memeriksa sintaks umum, dan kemudian memeriksa nama kolom dan tabel yang Anda sediakan terhadap kemungkinan kolom dan tabel dalam konteks saat ini. Jika Power Pivot tidak dapat menemukan kolom dan tabel yang ditentukan oleh rumus, Anda akan mendapatkan kesalahan.

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

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

Konteks adalah konsep hebat yang dapat juga membuatnya sulit untuk memecahkan masalah rumus. Kami menyarankan agar Anda dimulai dengan rumus sederhana dan hubungan untuk melihat cara kerja konteks, dan lalu Mulailah bereksperimen dengan rumus sederhana di PivotTable. Bagian berikut ini juga menyediakan beberapa contoh bagaimana rumus menggunakan berbagai jenis konteks untuk secara dinamis mengembalikan hasil.

Contoh konteks dalam rumus

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

  • Fungsi FILTER memungkinkan Anda menentukan baris untuk menyertakan dalam konteks saat ini. Contoh dalam topik ini juga menggambarkan cara menyematkan filter dalam fungsi lain yang melakukan agregat.

  • Fungsi ALL mengatur konteks dalam rumus. Anda bisa menggunakannya untuk menggantikan filter yang diterapkan sebagai hasil konteks kueri.

  • Fungsi ALLEXCEPT memungkinkan Anda menghapus semua filter kecuali satu yang Anda tentukan. Topik kedua menyertakan contoh yang memandu Anda menyusun rumus dan memahami konteks kompleks.

  • EARLIER dan paling awal fungsi memungkinkan Anda beralih di antara tabel dengan melakukan perhitungan, saat mereferensikan nilai dari loop gabungan. Jika Anda terbiasa dengan konsep rekursi dan dengan loop dalam dan luar, Anda akan menghargai power yang menyediakan fungsi EARLIER dan EARLIEST. Jika Anda baru menggunakan konsep ini, Anda harus mengikuti langkah-langkah dalam contoh dengan saksama guna melihat bagaimana dalam dan luar konteks digunakan dalam perhitungan.

Atas Halaman

Integritas referensial

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

Jika Anda baru menggunakan konsep data relasi, sebaiknya bahwa Anda terlebih dahulu Baca topik pendahuluan, Ikhtisar relasi.

Integritas referensial dan hubungan Power Pivot

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

Dalam PivotTable, jika Anda mengelompokkan data dengan satu sisi hubungan, data apa pun tidak cocok di sisi banyak hubungan dikelompokkan bersama dan akan disertakan dalam total dengan judul baris kosong. Judul kosong berkisar sama dengan "anggota tidak diketahui."

Memahami anggota yang tidak diketahui

Konsep anggota yang tidak diketahui mungkin akrab untuk Anda jika Anda bekerja dengan multidimensional database sistem, seperti SQL Server Analysis Services. Jika istilah baru untuk Anda, contoh berikut ini menjelaskan apa itu anggota tidak diketahui dan pengaruh perhitungan.

Anggap Anda membuat penghitungan yang menjumlahkan bulanan penjualan untuk toko setiap, tetapi kolom dalam tabel penjualan tidak memiliki nilai untuk nama toko. Mengingat bahwa tabel untuk menyimpan dan penjualan disambungkan oleh nama toko, apa yang Anda harapkan terjadi dalam rumus? Bagaimana harus PivotTable grup atau menampilkan angka penjualan yang tidak terkait dengan toko yang sudah ada?

Masalah ini adalah satu umum dalam gudang data, di mana besar tabel fakta data harus Logis terkait dengan dimensi tabel yang berisi informasi tentang menyimpan, kawasan, dan atribut lain yang digunakan untuk mengkategorikan dan menghitung fakta. Untuk mengatasi masalah, fakta-fakta baru apa pun yang tidak terkait untuk entitas yang sudah ada untuk sementara waktu yang ditetapkan untuk anggota tidak diketahui. Itulah mengapa tidak terkait fakta akan muncul dikelompokkan di PivotTable di bawah judul kosong.

Perlakuan nilai kosong vs baris kosong

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

Atas Halaman

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.

×