Menggunakan fungsi iterator agregasi

Selesai

Setiap fungsi ringkasan kolom tunggal memiliki fungsi iterator yang setara. Bagian berikut mempertimbangkan dua skenario agregasi ketika fungsi iterator berguna: ringkasan kompleks dan ringkasan grain yang lebih tinggi.

Ringkasan kompleks

Di bagian ini, Anda akan membuat ukuran pertama Anda yang menggunakan fungsi iterator. Pertama, unduh dan buka file Adventure Works DW 2020 M05.pbix . Selanjutnya, tambahkan definisi pengukuran berikut:

Revenue =
SUMX(
    Sales,
    Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)

Format pengukuran Pendapatan sebagai mata uang dengan dua tempat desimal, lalu tambahkan ke visual tabel yang ditemukan di Halaman 1 laporan.

Gambar memperlihatkan visual tabel dengan dua kolom: Bulan dan Pendapatan. Data senilai satu tahun ditampilkan.

Dengan menggunakan fungsi iterator, rumus Pengukuran pendapatan mengagregasi lebih dari nilai kolom tunggal. Untuk setiap baris, ia menggunakan nilai konteks baris dari tiga kolom untuk menghasilkan jumlah pendapatan.

Sekarang, tambahkan ukuran lain:

Discount =
SUMX(
    Sales,
    Sales[Order Quantity]
    * (
        RELATED('Product'[List Price]) - Sales[Unit Price]
    )
)

Format pengukuran Diskon sebagai mata uang dengan dua tempat desimal, lalu tambahkan ke visual tabel.

Gambar memperlihatkan visual tabel dengan tiga kolom: Bulan, Pendapatan, dan Diskon. Data senilai satu tahun ditampilkan.

Perhatikan bahwa rumus menggunakan RELATED fungsi . Ingat, konteks baris tidak melampaui tabel. Jika rumus Anda perlu mereferensikan kolom dalam tabel lain, dan hubungan model ada di antara tabel, gunakan RELATED fungsi untuk hubungan satu sisi atau RELATEDTABLE fungsi untuk hubungan banyak sisi.

Ringkasan butir yang lebih tinggi

Contoh berikut mempertimbangkan persyaratan untuk melaporkan pendapatan rata-rata. Tambahkan ukuran berikut:

Revenue Avg =
AVERAGEX(
    Sales,
    Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)

Format pengukuran Rata-Rata Pendapatan sebagai mata uang dengan dua tempat desimal, lalu tambahkan ke visual tabel.

Gambar yang memperlihatkan visual tabel dengan empat kolom: Bulan, Pendapatan, Diskon, dan Rata-rata Pendapatan. Data senilai satu tahun ditampilkan.

Pertimbangkan bahwa rata-rata berarti jumlah nilai dibagi dengan hitungan nilai. Namun, teori itu menimbulkan pertanyaan: Apa yang diwakili oleh hitungan nilai? Dalam hal ini, jumlah nilai adalah jumlah ekspresi yang tidak dievaluasi ke BLANK. Selain itu, karena fungsi iterator menghitung baris tabel Penjualan , rata-rata akan berarti pendapatan per baris. Mengambil logika ini selangkah lebih jauh, karena setiap baris dalam tabel Penjualan merekam baris pesanan penjualan, itu bisa lebih tepat digambarkan sebagai pendapatan per baris pesanan.

Dengan demikian, Anda harus mengganti nama pengukuran Rata-rata Pendapatan sebagai Baris Pesanan Rata-rata Pendapatan sehingga jelas untuk melaporkan pengguna tentang apa yang digunakan sebagai basis rata-rata.

Contoh berikut menggunakan fungsi iterator untuk membuat ukuran baru yang meningkatkan granularitas ke tingkat pesanan penjualan (pesanan penjualan terdiri dari satu atau beberapa baris pesanan). Tambahkan ukuran berikut:

Revenue Avg Order =
AVERAGEX(
    VALUES('Sales Order'[Sales Order]),
    [Revenue]
)

Format pengukuran Pesanan Rata-rata Pendapatan sebagai mata uang dengan dua tempat desimal, lalu tambahkan ke visual tabel.

Gambar memperlihatkan visual tabel dengan lima kolom: Bulan, Pendapatan, Diskon, Garis Pesanan Rata-Rata Pendapatan, dan Pesanan Rata-Rata Pendapatan. Data senilai satu tahun ditampilkan.

Seperti yang diharapkan, pendapatan rata-rata untuk pesanan selalu lebih tinggi dari pendapatan rata-rata untuk satu baris pesanan.

Perhatikan bahwa rumus menggunakan VALUES fungsi DAX. Fungsi ini memungkinkan rumus Anda menentukan nilai apa yang ada dalam konteks filter. Dalam hal ini, fungsi berulang AVERAGEX atas setiap pesanan penjualan dalam konteks filter. Dengan kata lain, iterasi atas setiap pesanan penjualan untuk bulan tersebut. Konteks filter dan VALUES fungsi diperkenalkan dalam modul konteks filter.