Menggunakan fungsi kecerdasan waktu DAX

Selesai

DAX menyertakan beberapa fungsi inteligensi waktu untuk menyederhanakan tugas memodifikasi konteks filter tanggal. Anda dapat menulis banyak rumus kecerdasan ini dengan menggunakan CALCULATE fungsi yang memodifikasi filter tanggal, tetapi itu akan membuat lebih banyak pekerjaan.

Catatan

Banyak fungsi inteligensi waktu DAX berkaitan dengan periode tanggal standar, khususnya tahun, kuartal, dan bulan. Jika Anda memiliki periode waktu yang tidak teratur (misalnya, bulan keuangan yang dimulai pertengahan bulan kalender), atau Anda perlu bekerja dengan minggu atau periode waktu (jam, menit, dan sebagainya), fungsi inteligensi waktu DAX tidak akan membantu. Sebagai gantinya CALCULATE , Anda harus menggunakan fungsi dan meneruskan filter tanggal atau waktu buatan tangan.

Persyaratan tabel tanggal

Untuk bekerja dengan fungsi DAX inteligensi waktu, Anda perlu memenuhi persyaratan model prasyarat untuk memiliki setidaknya satu tabel tanggal dalam model Anda. Tabel tanggal adalah tabel yang memenuhi persyaratan berikut:

  • Ini harus memiliki kolom jenis data Tanggal (atau tanggal/waktu), yang dikenal sebagai kolom tanggal.
  • Kolom tanggal harus berisi nilai unik.
  • Kolom tanggal tidak boleh KOSONG.
  • Kolom tanggal tidak boleh memiliki tanggal yang hilang.
  • Kolom tanggal harus mencakup tahun penuh. Setahun belum tentu merupakan tahun kalender (Januari-Desember).
  • Tabel tanggal harus ditunjukkan sebagai tabel tanggal.

Untuk informasi selengkapnya, lihat Create tabel tanggal di Power BI Desktop.

Ringkasan dari waktu ke waktu

Satu grup fungsi inteligensi waktu DAX berkaitan dengan ringkasan dari waktu ke waktu:

  • DATESYTD - Mengembalikan tabel kolom tunggal yang berisi tanggal untuk tahun ke tanggal (YTD) dalam konteks filter saat ini. Grup ini juga mencakup DATESMTD fungsi DAX dan DATESQTD untuk bulanan hingga saat ini (MTD) dan kuartal hingga saat ini (QTD). Anda dapat meneruskan fungsi-fungsi ini sebagai filter ke CALCULATE dalam fungsi DAX.
  • TOTALYTD - Mengevaluasi ekspresi untuk YTD dalam konteks filter saat ini. Fungsi QTD dan MTD DAX yang setara dan TOTALQTDTOTALMTD juga disertakan.
  • DATESBETWEEN - Mengembalikan tabel yang berisi kolom tanggal yang dimulai dengan tanggal mulai tertentu dan berlanjut hingga tanggal selesai tertentu.
  • DATESINPERIOD - Mengembalikan tabel yang berisi kolom tanggal yang dimulai dengan tanggal mulai tertentu dan berlanjut untuk jumlah interval yang ditentukan.

Catatan

TOTALYTD Meskipun fungsi ini mudah digunakan, Anda terbatas pada meneruskan satu ekspresi filter. Jika Anda perlu menerapkan beberapa ekspresi filter, gunakan CALCULATE fungsi lalu teruskan DATESYTD fungsi sebagai salah satu ekspresi filter.

Dalam contoh berikut, Anda akan membuat perhitungan inteligensi pertama kali yang akan menggunakan fungsi TOTALYTD. Sintaksnya adalah sebagai berikut:

TOTALYTD(<expression>, <dates>, [, <filter>][, <year_end_date>])

Fungsi ini memerlukan ekspresi dan, seperti yang umum untuk semua fungsi inteligensi waktu, referensi ke kolom tanggal tabel tanggal yang ditandai. Secara opsional, ekspresi filter tunggal atau tanggal akhir tahun dapat diteruskan (hanya diperlukan saat tahun tidak selesai pada 31 Desember).

Unduh dan buka file Adventure Works DW 2020 M07.pbix . Kemudian, tambahkan definisi pengukuran berikut ke tabel Penjualan yang menghitung pendapatan YTD. Format pengukuran sebagai mata uang dengan dua tempat desimal.

Revenue YTD =
TOTALYTD([Revenue], 'Date'[Date], "6-30")

Nilai "6-30" tanggal akhir tahun mewakili 30 Juni.

Pada Halaman 1 laporan, tambahkan pengukuran Pendapatan YTD ke visual matriks. Perhatikan bahwa ia menghasilkan ringkasan jumlah pendapatan dari awal tahun hingga bulan yang difilter.

Gambar memperlihatkan visual matriks dengan pengelompokan pada Tahun dan Bulan pada baris dan ringkasan Pendapatan dan Pendapatan YTD. Nilai YTD disorot.

Perbandingan dari waktu ke waktu

Kelompok lain dari fungsi inteligensi waktu DAX berkaitan dengan pergeseran periode waktu:

  • DATEADD - Mengembalikan tabel yang berisi kolom tanggal, digeser maju atau mundur dalam waktu dengan jumlah interval yang ditentukan dari tanggal dalam konteks filter saat ini.
  • PARALLELPERIOD - Mengembalikan tabel yang berisi kolom tanggal yang mewakili periode yang paralel dengan tanggal di kolom tanggal yang ditentukan, dalam konteks filter saat ini, dengan tanggal menggeser sejumlah interval baik ke depan dalam waktu atau waktu ke belakang.
  • SAMEPERIODLASTYEAR - Mengembalikan tabel yang berisi kolom tanggal yang digeser satu tahun ke belakang dari tanggal di kolom tanggal yang ditentukan, dalam konteks filter saat ini.
  • Banyak fungsi DAX pembantu untuk menavigasi mundur atau maju untuk periode waktu tertentu, yang semuanya mengembalikan tabel tanggal. Fungsi pembantu ini mencakup NEXTDAY, , NEXTMONTH, NEXTYEARNEXTQUARTER, dan PREVIOUSDAY, PREVIOUSMONTH, PREVIOUSQUARTER, dan PREVIOUSYEAR.

Sekarang, Anda akan menambahkan ukuran ke tabel Penjualan yang menghitung pendapatan untuk tahun sebelumnya dengan menggunakan SAMEPERIODLASTYEAR fungsi . Format pengukuran sebagai mata uang dengan dua tempat desimal.

Revenue PY =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
    RevenuePriorYear

Tambahkan pengukuran PY Pendapatan ke visual matriks. Perhatikan bahwa itu menghasilkan hasil yang mirip dengan jumlah pendapatan tahun sebelumnya.

Gambar memperlihatkan visual matriks dengan pengelompokan pada Tahun dan Bulan pada baris dan ringkasan Pendapatan, Pendapatan YTD, dan PY Pendapatan. Nilai bulan PY Pendapatan untuk FY2019 sama dengan nilai bulan Pendapatan untuk FY2018.

Selanjutnya, Anda akan memodifikasi ukuran dengan mengganti nama menjadi Pendapatan YoY % dan kemudian memperbarui RETURN klausul untuk menghitung rasio perubahan. Pastikan untuk mengubah format menjadi persentase dengan dua tempat desimal.

Revenue YoY % =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
    DIVIDE(
        [Revenue] - RevenuePriorYear,
        RevenuePriorYear
    )

Perhatikan bahwa ukuran Pendapatan YoY % menghasilkan rasio faktor perubahan dibandingkan pendapatan bulanan tahun sebelumnya. Misalnya, Juli 2018 menunjukkan peningkatan 106,53 persen atas pendapatan bulanan tahun sebelumnya, dan November 2018 menunjukkan penurunan 24,22 persen dibandingkan pendapatan bulanan tahun sebelumnya.

Gambar memperlihatkan visual matriks dengan pengelompokan pada Tahun dan Bulan pada baris dan ringkasan Pendapatan, Pendapatan YTD, dan Pendapatan YoY % . Nilai Pendapatan YoY % bulan untuk FY2019 adalah nilai yang diformat sebagai persentase.

Catatan

Pengukuran Pendapatan YoY % menunjukkan penggunaan variabel DAX yang baik. Ukuran meningkatkan keterbacaan rumus dan memungkinkan Anda untuk menyatukan bagian pengujian dari logika pengukuran (dengan mengembalikan nilai variabel RevenuePriorYear ). Selain itu, ukurannya adalah rumus yang optimal karena tidak perlu mengambil nilai pendapatan tahun sebelumnya dua kali. Setelah menyimpannya sekali dalam variabel, RETURN klausul menggunakan nilai variabel dua kali.