Konteks dalam Formula DAX

Penting: Artikel ini diterjemahkan oleh mesin, lihatlah notis penafian. Sila dapatkan versi Bahasa Inggeris artikel ini di sini sebagai rujukan anda

Konteks membolehkan anda menjalankan analisis dinamik, dalam yang mana hasil formula boleh berubah untuk menggambarkan pilihan baris atau sel semasa dan juga sebarang data berkaitan. Memahami konteks dan menggunakan konteks secara berkesan adalah amat penting dalam membina formula berprestasi tinggi, analisis dinamik dan menyelesaikan masalah dalam formula.

Bahagian ini menentukan jenis konteks berlainan: konteks baris, konteks pertanyaan, dan konteks penapis. Ia menerangkan cara konteks dinilai untuk formula dalam lajur terhitung dan dalam Jadual Pangsi.

Bahagian terakhir artikel ini menyediakan pautan kepada contoh terperinci yang menggambarkan cara hasil formula berubah menurut konteks.

Memahami Konteks

Formula dalam Power Pivot boleh dipengaruhi oleh penapis yang digunakan dalam Jadual pangsi, dengan perhubungan antara jadual dan oleh penapis yang digunakan dalam Formula. Konteks adalah apa memungkinkan untuk melakukan analisis dinamik. Memahami konteks adalah penting untuk binaan dan untuk menyelesaikan masalah Formula.

Terdapat jenis konteks berlainan: konteks baris, konteks pertanyaan dan konteks penapis.

Konteks baris boleh dianggap "bari semasa." Jika anda telah mencipta lajur terhitung, konteks baris terdiri daripada nilai dalam setiap baris individu dan nilai dalam lajur yang berkaitan daripada baris semasa. Terdapat juga beberapa fungsi (Fungsi EARLIER dan Fungsi EARLIEST) yang mendapat nilai daripada baris semasa dan kemudian menggunakan nilai tersebut semasa menjalankan operasi terhadap keseluruhan jadual.

Konteks pertanyaan merujuk pada subset data yang dicipta secara implisit untuk setiap sel dalam Jadual Pangsi, bergantung pada tajuk baris dan lajur.

Konteks penapis ialah set nilai yang dibenarkan dalam setiap lajur, berdasarkan kekangan penapis yang digunakan pada baris atau yang ditentukan oleh ungkapan penapis dalam formula.

Halaman Atas

Konteks Baris

Jika anda mencipta formula dalam lajur terhitung, konteks baris untuk formula tersebut termasuk nilai daripada semua lajur dalam baris semasa. Jika jadual berkaitan dengan jadual lain, konteks juga termasuk semua nilai daripada jadual lain itu yang berkaitan dengan baris semasa

Contohnya, katakan anda mencipta lajur terhitung, = [Freight] + [cukai],

, yang menambah dua lajur daripada jadual yang sama. Formula ini berkelakuan seperti formula dalam jadual Excel, yang merujuk nilai dalam baris yang sama secara automatik. Perhatikan bahawa jadual adalah berbeza daripada julat: anda tidak boleh merujuk nilai daripada baris sebelum baris semasa menggunakan notasi julat dan anda tidak boleh merujuk sebarang nilai tunggal arbitrari dalam jadual atau sel. Anda mesti sentiasa bekerja dengan jadual dan lajur.

Konteks baris mengikut perhubungan antara jadual secara automatik untuk menentukan baris dalam jadual berkaitan yang mana dikaitkan dengan baris semasa.

Contohnya, formula berikut menggunakan fungsi RELATED untuk mengambil nilai teks daripada jadual berkaitan, berdasarkan rantau ke mana pesanan dihantar. Nilai cukai ditentukan dengan menggunakan nilai untuk rantau dalam jadual semasa, mencari rantau dalam jadual berkaitan dan kemudian mendapatkan kadar cukai untuk rantau tersebut daripada jadual berkaitan.

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

Formula ini hanya mendapatkan kadar cukai untuk rantau semasa, daripada jadual Rantau. Anda tidak perlu mengetahui atau menentukan kunci yang menyambungkan jadual.

Konteks Berbilang Baris

Selain itu, DAX termasuk fungsi yang mengulangi pengiraan merentasi jadual. Fungsi ini boleh mempunyai berbilang baris semasa dan konteks baris semasa. Dalam istilah pengaturcaraan, anda boleh mencipta formula yang rekursif terhadap gelung dalaman dan luaran.

Contohnya, katakan buku kerja anda mengandungi Jadual produk dan jadual jualan . Anda mungkin ingin melalui Jadual jualan keseluruhan yang penuh urus niaga yang melibatkan berbilang produk, dan Cari kuantiti terbesar yang disusun untuk setiap produk dalam mana-mana satu transaksi.

Dalam Excel, pengiraan ini memerlukan satu siri rumusan pertengahan, yang perlu dibina semula jika data berubah. Jika anda pengguna berkuasa Excel, anda mungkin dapat membina formula tatasusunan yang dapat menyelesaikan tugas ini. Secara alternatifnya, dalam pangkalan data perhubungan, anda boleh menulis subpilihan tersarang.

Walau bagaimanapun, dengan DAX anda boleh membina formula yang mengembalikan nilai yang betul, dan hasil dikemas kini secara automatik pada bila-bila masa anda menambah data pada jadual.

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Untuk tunjuk cara terperinci formula ini, lihat Fungsi EARLIER.

Secara ringkasnya, fungsi EARLIER menyimpan konteks baris daripada operasi yang mendahului operasi semasa. Pada setiap masa, fungsi menyimpan dua set konteks dalam memori: satu set konteks yang mewakili baris semasa untuk gelung dalaman formula dan set lain konteks yang mewakili baris semasa untuk gelung luar formula. DAX menyuapkan nilai antara dua gelung secara automatik agar anda boleh mencipta agregat kompleks.

Halaman Atas

Konteks Pertanyaan

Konteks pertanyaan merujuk pada subset data yang diambil secara tersirat untuk formula. Apabila anda memutuskan ukuran atau medan nilai lain ke dalam sel dalam Jadual pangsi, enjin Power Pivot mengkaji pada pengepala baris dan lajur, Penghiris dan penapis laporan untuk menentukan konteks. Kemudian, Power Pivot membuat pengiraan yang diperlukan untuk mengisi setiap sel dalam Jadual pangsi. Set data yang diambil ialah konteks pertanyaan untuk setiap sel.

Kerana konteks boleh berubah bergantung pada di mana anda menempatkan formula, hasil formula juga berubah bergantung pada sama ada anda menggunakan formula dalam Jadual Pangsi dengan banyak perkumpulan dan penapis, atau dalam lajur terhitung tanpa penapis dan konteks minimum.

Contohnya, katakan anda mencipta formula ini ringkas yang menjumlahkan nilai dalam lajur keuntungan bagi jualan table:=SUM('Sales'[Profit]).

Jika anda menggunakan formula ini dalam lajur terhitung dalam Jadual jualan , hasil bagi formula akan sama untuk keseluruhan Jadual, kerana konteks pertanyaan untuk formula sentiasa seluruh set data dalam Jadual jualan . Hasil anda akan mempunyai keuntungan bagi semua rantau, semua produk, Semua tahun dan sebagainya.

Walau bagaimanapun, lazimnya anda tidak mahu melihat hasil yang sama beratus kali, tetapi sebaliknya anda ingin mendapatkan keuntungan untuk tahun tertentu, negara atau rantau tertentu, produk tertentu atau sesuatu gabungan yang ini dan kemudian dapatkan jumlah bersih.

Dalam Jadual pangsi, ia adalah mudah untuk mengubah konteks dengan menambah atau mengalih keluar pengepala lajur dan baris dan dengan menambah atau mengalih keluar Penghiris. Anda boleh mencipta formula seperti yang di atas, dalam ukuran dan kemudian lepaskan ke dalam Jadual pangsi. Apabila anda menambah tajuk lajur atau baris pada jadual pangsi, anda mengubah konteks pertanyaan yang diukur dinilai. Menghiris dan menapis operasi juga mempengaruhi konteks. Oleh itu, formula yang sama yang digunakan dalam Jadual pangsi, dinilai dalam konteks pertanyaan yang berbeza untuk setiap sel.

Halaman Atas

Konteks Penapis

Konteks penapis ditambah apabila anda menentukan kekangan penapis terhadap set nilai yang dibenarkan dalam setiap lajur atau jadual, dengan menggunakan argumen pada formula. Konteks penapis digunakan di atas konteks lain, seperti konteks baris dan konteks pertanyaan.

Contohnya, Jadual pangsi mengira nilai untuk setiap sel yang berdasarkan pada tajuk baris dan lajur, seperti yang diterangkan dalam seksyen sebelumnya pada konteks pertanyaan. Walau bagaimanapun, dalam langkah-langkah atau lajur terhitung yang anda tambahkan pada jadual pangsi, anda boleh menentukan ungkapan penapis untuk mengawal nilai yang digunakan oleh formula. Anda boleh juga secara pilihan mengosongkan penapis pada lajur tertentu.

Untuk maklumat lanjut mengenai cara mencipta penapis dalam formula, lihat Fungsi Penapis (DAX).

Untuk contoh cara penapis boleh dikosongkan daripada jumlah besar, lihat Fungsi ALL.

Untuk contoh mengenai cara mengosongkan dan menggunakan penapis secara terpilih dalam formula, lihat Fungsi ALLEXCEPT.

Oleh itu, anda mesti menyemak takrifan ukuran atau formula yang digunakan dalam Jadual pangsi agar anda sedar mengenai konteks penapis apabila mentafsirkan hasil Formula.

Halaman Atas

Menentukan Konteks dalam Formula

Apabila anda mencipta formula, Power Pivot untuk Excel menyemak sintaks umum dahulu, kemudian menyemak nama lajur dan jadual yang anda sediakan terhadap lajur dan jadual yang mungkin dalam konteks semasa. Jika Power Pivot tidak menemui lajur dan jadual yang ditentukan oleh formula, anda akan menerima ralat.

Konteks ditentukan seperti yang diperihalkan dalam bahagian sebelumnya, dengan menggunakan jadual yang tersedia dalam buku kerja, sebarang perhubungan antara jadual dan sebarang penapis yang telah digunakan.

Contohnya, jika anda baru sahaja mengimport data ke dalam jadual baru dan tidak menggunakan sebarang penapis, keseluruhan set lajur dalam jadual ialah sebahagian daripada konteks semasa. Jika anda mempunyai berbilang jadual yang dipautkan oleh perhubungan dan anda bekerja dalam Jadual Pangsi yang telah ditapis dengan menambah tajuk lajur dan menggunakan Penghiris, konteks termasuk jadual berkaitan dan sebarang penapis pada data.

Konteks ialah konsep berkuasa yang juga boleh menyukarkan untuk menyelesaikan masalah formula. Kami syorkan anda bermula dengan formula dan perhubungan ringkas dan melihat cara konteks berfungsi dan kemudian mula mencuba-cuba dengan formula ringkas dalam Jadual Pangsi. Bahagian berikut juga menyediakan beberapa contoh mengenai cara formula menggunakan jenis konteks berlainan untuk mengembalikan hasil secara dinamik.

Contoh Konteks dalam Formula

  • Fungsi RELATED mengembangkan konteks pada baris semasa untuk menyertakan nilai dalam lajur berkaitan. Ini membenarkan anda menjalankan carian. Contoh dalam topik ini menunjukkan interaksi penapisan dan konteks baris.

  • Fungsi FILTER membenarkan anda menentukan baris untuk disertakan dalam konteks semasa. Contoh dalam topik ini juga menunjukkan cara membenamkan penapis dalam fungsi lain yang menjalankan pengagregatan.

  • Fungsi ALL mengesetkan konteks dalam formula. Anda boleh menggunakannya untuk menulis ganti penapis yang digunakan sebagai hasil konteks pertanyaan.

  • Fungsi ALLEXCEPT membenarkan anda mengalih keluar semua penapis kecuali yang anda tentukan. Kedua-dua topik termasuk contoh yang menunjuk cara anda menerusi membina formula dan memahami konteks kompleks.

  • Fungsi EARLIER dan EARLIEST membenarkan anda menggelungkan menerusi jadual dengan menjalankan pengiraan sambil merujuk nilai daripada gelung dalaman. Jika anda biasa dengan konsep rekursif dan gelung dalaman dan luaran, anda pasti menghargai kuasa yang disediakan oleh fungsi EARLIER dan EARLIEST. Jika anda baru kepada konsep ini, anda hendaklah mengikuti langkah-langkah dalam contoh dengan teliti untuk melihat cara konteks dalaman dan luaran digunakan dalam pengiraan.

Halaman Atas

Integriti Rujukan

Seksyen ini membincangkan beberapa konsep lanjutan yang berkaitan dengan nilai yang hilang dalam jadual Power Pivot yang disambungkan oleh perhubungan. Seksyen ini mungkin berguna kepada anda jika anda mempunyai buku kerja dengan berbilang jadual dan formula kompleks dan inginkan bantuan untuk memahami hasilnya.

Jika anda baru kepada konsep data perhubungan, kami syorkan bahawa anda membaca dahulu topik pengenalan, Gambaran Keseluruhan Perhubungan.

Integriti Rujukan dan Perhubungan Power Pivot

Power Pivot tidak memerlukan penguatkuasaan integriti rujukan antara dua jadual untuk menentukan perhubungan yang sah. Sebaliknya, baris kosong dicipta pada "satu" hujung bagi setiap perhubungan satu kepada banyak dan digunakan untuk mengendalikan semua baris yang tidak sepadan daripada jadual yang berkaitan. Ia berkelakuan secara berkesan sebagai cantuman luaran SQL.

Dalam Jadual Pangsi, jika anda mengumpulkan data mengikut bahagian satu dalam perhubungan, sebarang data yang tidak sepadan pada bahagian banyak dikumpulkan bersama dan akan disertakan dalam jumlah dengan tajuk baris kosong. Tajuk kosong secara kasarnya bersamaan dengan "ahli tidak diketahui."

Memahami Ahli Tidak Diketahui

Konsep ahli tidak diketahui mungkin biasa kepada anda jika anda pernah menggunakan sistem pangkalan data berbilang dimensi, seperti SQL Server Analysis Services. Jika istilah ini baru kepada anda, contoh berikut menerangkan maksud ahli tidak diketahui dan cara ia mempengaruhi pengiraan.

Katakan anda mencipta pengiraan yang menjumlahkan jualan bulanan untuk setiap gedung, tetapi lajur dalam Jadual jualan hilang nilai untuk nama gedung. Memandangkan jadual untuk Menyimpan dan jualan disambungkan dengan nama kedai, yang anda jangkakan berlaku dalam formula? Bagaimanakah harus Jadual pangsi Kumpulan atau memaparkan angka jualan yang tidak berkaitan gedung sedia ada?

Masalah ini ialah masalah lazim dalam gudang data, di mana jadual data fakta yang besar mesti berkaitan secara logik kepada jadual dimensi yang mengandungi maklumat mengenai gedung, rantau dan atribut lain yang digunakan untuk mengkategorikan dan mengira fakta. Untuk menyelesaikan masalah, sebarang fakta baru yang tidak berkaitan dengan entiti sedia ada akan diuntukkan buat sementara kepada ahli tidak diketahui. Sebab itulah fakta yang tidak berkaitan akan muncul dikumpulkan dalam Jadual Pangsi di bawah tajuk kosong.

Pengendalian Nilai Kosong lwn. Baris Kosong

Nilai kosong berbeza daripada baris kosong yang ditambah untuk memuatkan ahli tidak diketahui. Nilai kosong ialah nilai khas yang digunakan untuk mewakili nol, rentetan kosong dan nilai tiada yang lain. Untuk maklumat lanjut, mengenai nilai kosong, dan juga jenis data DAX yang lain, lihat Jenis Data dalam Model Data.

Halaman Atas

Nota: Notis Penafian Penterjemahan Mesin: Artikel ini telah diterjemah oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan penterjemahan mesin ini untuk membantu pengguna-pengguna yang tidak bertutur dalam Bahasa Inggeris supaya dapat menikmati kandungan mengenai produk, perkhidmatan dan teknologi Microsoft. Artikel ini mungkin mengandungi ralat perbendaharaan kata, sintaks atau tatabahasa kerana ia diterjemahkan oleh mesin.

Kembangkan kemahiran anda
Jelajahi latihan
Dapatkan ciri baru terlebih dahulu
Sertai Office Insiders

Adakah maklumat ini membantu?

Terima kasih atas maklum balas anda!

Terima kasih atas maklum balas anda! Nampaknya ia mungkin akan membantu untuk menyambungkan anda kepada salah seorang daripada ejen sokongan Office kami.

×