Menambahkan pengukuran waktu dalam status ke laporan Power BI Anda

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Waktu yang dihabiskan item kerja dalam status alur kerja atau serangkaian status tertentu adalah aspek penting untuk memahami efisiensi. Widget Waktu Siklus dan Analitik Waktu Prospek menyediakan beberapa ukuran waktu dalam keadaan. Namun, widget ini mungkin tidak memiliki tingkat detail yang Anda inginkan.

Artikel ini menyediakan resep menggunakan Data Analysis Expressions (DAX) untuk mengevaluasi waktu yang dihabiskan oleh item kerja dalam kombinasi status. Secara khusus, Anda mempelajari cara menambahkan kolom pengukuran dan terhitung berikut ke laporan Power BI Anda dan menggunakannya untuk menghasilkan berbagai bagan tren. Semua bidang adalah kolom terhitung kecuali yang pertama tercantum.

Hitung Deskripsi
Jumlah Item Kerja (pengukuran) Menghitung jumlah item kerja yang berbeda berdasarkan entri hari terakhir untuk item kerja
Urutan Pengurutan Status Menambahkan kolom yang akan digunakan untuk mengurutkan Status alur kerja berdasarkan urutan Kategori Status
Tanggal Sebelumnya Menambahkan kolom yang menghitung tanggal sebelumnya berdasarkan kolom Tanggal
Tanggal Berbeda dalam Hari Menambahkan kolom yang menghitung jumlah hari antara kolom Tanggal dan Tanggal Sebelumnya
Adalah Hari Terakhir dalam Status Menambahkan kolom yang menentukan apakah nilai Tanggal adalah hari terakhir item kerja berada dalam Status
Waktu Status dalam Hari Menambahkan kolom yang menghitung jumlah hari yang dihabiskan item kerja di setiap Status
Status Sebelumnya Menambahkan kolom yang mengidentifikasi status sebelumnya untuk setiap baris dalam tabel data
Status Diubah Menambahkan kolom yang menentukan tanggal saat item kerja ditransisikan dari satu Status ke Status lainnya
Alur Status Menambahkan kolom yang mengilustrasikan alur status sebagai item kerja transisi dari satu Status ke Status lainnya
Jumlah Perubahan Status Menambahkan kolom yang menghitung berapa kali item kerja ditransisikan dari satu Status ke Status lainnya
Jumlah Perubahan Status - Pertama Selesai Menambahkan kolom yang menentukan berapa kali item kerja beralih ke status Selesai untuk pertama kalinya. Dengan kata lain, ketika berpindah dari status lain ke status Selesai.
Jumlah Perubahan Status - Terakhir Diusulkan Menambahkan kolom yang menentukan apakah item kerja berada dalam status Diusulkan sebelumnya setelah ditransisikan ke Status selanjutnya
Waktu Mulai Ulang Status dalam Hari Menambahkan kolom yang menghitung hari yang dihabiskan item kerja dalam status hidupkan ulang
Waktu Pengerjaan Ulang Status dalam Hari Menambahkan kolom yang menghitung hari yang dihabiskan item kerja dalam status selain Selesai

Penting

  • Saat menambahkan kolom terhitung atau mengukur per contoh yang diperlihatkan dalam artikel ini, ganti Nama Tampilan dengan nama tabel untuk tampilan Analitik atau tabel data. Misalnya, ganti Nama Tampilan dengan Bug Aktif.
    Cuplikan layar tab alat Tabel Power BI, Nama tabel data.
  • Analitik tidak mendukung revisi intra-hari. Contoh ini memiliki presisi paling baik saat menggunakan interval Harian saat mereferensikan tampilan Analitik.
  • Semua revisi intra-hari atau intra-periode (mingguan/bulanan) diabaikan oleh perhitungan. Ini dapat mengakibatkan hasil yang tidak terduga untuk skenario tertentu seperti item kerja yang menunjukkan tidak ada waktu "Sedang Berlangsung" ketika item kerja "Sedang Berlangsung" selama kurang dari sehari.
  • Agregasi default Power BI digunakan jika memungkinkan alih-alih membangun pengukuran.
  • Beberapa perhitungan termasuk +0 untuk memastikan bahwa nilai numerik disertakan untuk setiap baris, bukan BLANK. Anda mungkin perlu merevisi beberapa definisi kolom terhitung berdasarkan status alur kerja yang digunakan oleh proyek Anda. Misalnya, jika proyek Anda menggunakan Baru, Aktif, dan Ditutup sebagai ganti Diusulkan, Sedang Berlangsung, dan Selesai.

Prasyarat

  • Untuk melihat data Analitik dan mengkueri layanan, Anda harus menjadi anggota proyek dengan akses Dasar atau yang lebih besar. Secara default, semua anggota proyek diberikan izin untuk mengkueri Analitik dan menentukan tampilan Analitik.
  • Untuk mempelajari tentang prasyarat lain mengenai pengaktifan layanan dan fitur serta aktivitas pelacakan data umum, lihat Izin dan prasyarat untuk mengakses Analitik.

Catatan

Untuk menjalankan semua langkah-langkah waktu dalam status yang dijelaskan dalam artikel ini, pastikan untuk menyertakan bidang berikut dalam tampilan Analitik, Kueri Power, atau kueri OData Anda: Kategori Tanggal dan Status Yang Dibuat selain bidang default: Jalur Area, Ditetapkan Ke, Jalur Perulangan, Status, Judul, ID Item Kerja, dan Jenis Item Kerja.

Selain itu, pertimbangkan untuk menggunakan tampilan Analitik berdasarkan granularitas Harian . Contoh dalam artikel ini didasarkan pada tampilan Analitik Bug Aktif yang ditentukan dalam Membuat laporan bug aktif di Power BI berdasarkan tampilan Analitik kustom, dengan pengecualian bahwa 60 hari Riwayat dan granularitas Harian dipilih. Tentukan juga apakah Anda ingin meninjau item kerja yang selesai atau tertutup.

Menambahkan pengukuran Jumlah Item Kerja

Untuk menyederhanakan pembuatan laporan dengan cepat, kami merancang tampilan Analytics untuk bekerja dengan agregasi default di Power BI. Untuk mengilustrasikan perbedaan antara agregasi default dan ukuran, kita mulai dengan ukuran jumlah item kerja sederhana.

  1. Muat tampilan Analitik Anda ke Power BI Desktop. Untuk detailnya, lihat Koneksi dengan Koneksi Data Power BI, Koneksi ke tampilan Analitik.

  2. Pilih tabel data, lalu dari tab Alat tabel, bagian Perhitungan dari pita, pilih Ukuran baru.

    Cuplikan layar tab alat Tabel Power BI, Pengukuran baru.

  3. Ganti teks default dengan kode berikut lalu pilih tanda centang.

    Work Items Count=CALCULATE(COUNTROWS ('View Name'),LASTDATE ('View Name'[Date]))
    

    Pengukuran Jumlah Item Kerja menggunakan CALCULATEfungsi , , COUNTROWSdan LASTDATE DAX yang dijelaskan secara lebih rinci nanti di artikel ini.

    Catatan

    Ingatlah untuk mengganti Nama Tampilan dengan nama tabel untuk tampilan Analitik. Misalnya, di sini kita mengganti Nama Tampilan dengan bug Aktif.

    Cuplikan layar tab alat Pengukuran Power BI, sintaks Jumlah Item Kerja.

Bagaimana ukuran berbeda dari kolom terhitung

Ukuran selalu mengevaluasi seluruh tabel di mana kolom terhitung khusus untuk satu baris. Untuk informasi selengkapnya, lihat Kolom dan Pengukuran Terhitung di DAX.

Bandingkan pengukuran Jumlah Item Kerja dengan agregasi jumlah default berdasarkan ID Item Kerja. Gambar berikut dibuat dengan menambahkan visual Kartu dan pengukuran Jumlah Item Kerja ke kartu pertama, dan properti ID Item Kerja ke kartu kedua.

Cuplikan layar halaman laporan Power BI, dua kartu memperlihatkan pengukuran Jumlah Item Kerja dan properti ID Item Kerja.

Untuk mendapatkan jumlah yang benar menggunakan agregasi default, Anda menerapkan filter Saat Ini sama dengan 'True.' Pola penerapan filter ke agregasi default ini adalah dasar untuk banyak contoh yang disediakan dalam artikel ini.

Cuplikan layar halaman laporan Power BI, jumlah ID item kerja difilter.

Tambahkan Urutan Pengurutan Status

Secara default, Power BI memperlihatkan status diurutkan menurut abjad dalam visualisasi. Ini bisa menyesatkan ketika Anda ingin memvisualisasikan waktu dalam status dan Diusulkan muncul setelah Sedang Berlangsung. Langkah-langkah berikut membantu mengatasi masalah ini.

  1. Verifikasi bahwa bidang Kategori Status disertakan dalam tampilan Analitik. Bidang ini disertakan dalam semua tampilan bersama default.

  2. Pilih tabel data, lalu dari tab Alat tabel, bagian Perhitungan dari pita, pilih Kolom baru.

    Cuplikan layar tab alat Tabel Power BI, kolom Baru.

  3. Ganti teks default dengan kode berikut lalu pilih tanda centang.

    State Sort Order =  
    SWITCH (  
        'View Name'[State Category],  
        "Proposed", 1,  
        "InProgress", 2,  
        "Resolved", 3,  
        4  
    )  
    

    Lihat contoh berikut:

    Cuplikan layar tab alat Tabel Power BI, entri kategori status.

    Catatan

    Anda mungkin perlu merevisi definisi jika Anda membutuhkan lebih banyak granularitas daripada yang disediakan Kategori Status. Kategori Status menyediakan pengurutan yang benar di semua jenis item kerja terlepas dari kustomisasi Status apa pun.

  4. Buka tampilan Data dan pilih kolom Status.

  5. Dari tab Alat Kolom, pilih Urutkan menurut Kolom lalu pilih bidang Urutan Urutan Status.

    Cuplikan layar tab alat Kolom Power BI, Urutkan menurut pilihan kolom.

Tambahkan Tanggal Sebelumnya

Langkah berikutnya untuk menghitung waktu dalam status memerlukan pemetaan interval sebelumnya (hari, minggu, bulan) untuk setiap baris data dalam himpunan data. Ini adalah perhitungan sederhana menggunakan kolom terhitung. Biasanya, Anda akan menentukan kolom ini seperti yang ditunjukkan.

Date Previous  = 
PREVIOUSDAY ( 'View Name'[Date] )

Namun, pendekatan ini memiliki dua masalah utama:

  • Ini hanya berfungsi untuk periode harian.
  • Ini tidak menangani kesenjangan dalam data. Misalnya, jika item kerja dipindahkan di antara proyek.

Untuk mengatasi masalah ini, kolom terhitung harus menemukan hari sebelumnya dengan memindai bidang Tanggal .

Untuk menambahkan kolom terhitung Tanggal Sebelumnya , dari tab Alat tabel, pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

Date Previous =
CALCULATE (
    MAX ( 'View Name'[Date] ),
        ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
        'View Name'[Date] < EARLIER ( 'View Name'[Date] )
)

Kolom Terhitung Tanggal Sebelumnya menggunakan tiga fungsi DAX, , MAX, ALLEXCEPTdan EARLIER, yang dijelaskan secara lebih rinci nanti dalam artikel ini. Karena kolom dihitung, kolom berjalan untuk setiap baris dalam tabel, dan setiap kali dijalankan, kolom tersebut memiliki konteks baris tertentu.

Cuplikan layar bagan tabel Power BI dan tab Visualisasi untuk Tanggal dan Tanggal Sebelumnya.

Tip

Dari menu konteks untuk bidang Tanggal dan Tanggal Sebelumnya, pilih Tanggal (alih-alih Hierarki Tanggal) untuk melihat satu tanggal untuk bidang ini.

Tambahkan Tanggal Berbeda dalam Hari

Tanggal Sebelumnya menghitung perbedaan antara tanggal sebelumnya dan saat ini untuk setiap baris. Dengan Tanggal Berbeda dalam Hari, kami menghitung hitungan hari di antara masing-masing periode tersebut. Untuk sebagian besar baris dalam rekam jepret harian, nilainya sama dengan 1. Namun, untuk banyak item kerja yang memiliki celah dalam himpunan data, nilainya lebih besar dari 1.

Penting

Mengharuskan Anda menambahkan kolom terhitung Tanggal Sebelumnya ke tabel.

Penting untuk mempertimbangkan hari pertama himpunan data di mana Tanggal Sebelumnya kosong. Dalam contoh ini, kami memberi baris tersebut nilai standar 1 untuk menjaga perhitungan tetap konsisten.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

Date Diff in Days =
IF (
    ISBLANK ( 'View Name'[Date Previous] ),
    1,
    DATEDIFF (
        'View Name'[Date Previous],
        'View Name'[Date],
        DAY
    )
)

Kolom terhitung ini menggunakan ISBLANK fungsi DAX dan DATEDIFF yang dijelaskan nanti dalam artikel ini.

Tambahkan Adalah Hari Terakhir dalam Status

Dalam langkah berikutnya ini, kami menghitung apakah baris tertentu mewakili hari terakhir item kerja tertentu berada dalam status. Ini mendukung agregasi default di Power BI yang kita tambahkan di bagian berikutnya di mana kita menambahkan kolom State Time in Days .

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

Is Last Day in State = 
ISBLANK (CALCULATE (
    COUNTROWS ( 'View Name' ),
        ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
        'View Name'[Date] > EARLIER ( 'View Name'[Date] ),
        'View Name'[State] = EARLIER ( 'View Name'[State] )
))

Tambahkan Waktu Status dalam Hari

Waktu yang dihabiskan item kerja dalam status tertentu sekarang dapat dihitung dengan menjumlahkan Tanggal Berbeda dalam Hari untuk setiap item kerja. Perhitungan ini mencakup semua waktu yang dihabiskan dalam keadaan tertentu meskipun beralih antar status beberapa kali. Dimungkinkan untuk mengevaluasi setiap baris sebagai tren menggunakan Tanggal atau informasi terbaru dengan menggunakan Is Last Day In State.

Penting

Mengharuskan Anda menambahkan Tanggal Berbeda dalam Hari dan Hari Terakhir dalam kolom terhitung Status ke tabel.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Time in Days = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State] = EARLIER ( 'View Name'[State] )
) + 0

Membuat bagan tren kolom bertumpuk berdasarkan Waktu Status dalam Hari

Untuk menunjukkan kolom Waktu Status dalam Hari , bagan kolom bertumpuk berikut dibuat. Bagan pertama memperlihatkan jumlah item kerja di setiap status dari waktu ke waktu.

Cuplikan layar bagan kolom bertumpuk Power BI dan tab Visualisasi yang mengilustrasikan jumlah judul item kerja menurut tanggal dan status.

Bagan kedua mengilustrasikan tren hari rata-rata item kerja aktif dalam keadaan tertentu.

Cuplikan layar bagan kolom bertumpuk Power BI dan tab Visualisasi yang mengilustrasikan hari rata-rata dalam status untuk item kerja menurut tanggal.

Tambahkan Waktu Status dalam Hari - Terbaru (Adalah Hari Terakhir Dalam Status)

Saat mengevaluasi time-in-state untuk setiap item kerja dalam tabel atau saat difilter menurut bidang seperti Jalur Area, jangan gunakan kolom Waktu Status dalam Hari dalam agregasi. Agregasi menggunakan nilai untuk setiap hari item kerja berada dalam status . Misalnya, jika item kerja Sedang Berlangsung pada hari Senin dan dipindahkan ke Selesai pada hari Kamis, waktu dalam status adalah tiga hari, tetapi jumlah Waktu Status dalam kolom Hari adalah enam hari, 1+2+3, yang salah.

Tambahkan Waktu Status dalam Hari - Terbaru.

Untuk mengatasi masalah ini, gunakan Waktu Status dalam Hari dan terapkan filter Adalah Hari Terakhir Dalam Status sama dengan 'True.' Ini menghilangkan semua data historis yang diperlukan untuk tren dan berfokus hanya pada nilai terbaru untuk setiap status.

Gunakan Waktu Status dalam Hari dan terapkan filter Adalah Hari Terakhir Dalam Status sama dengan 'True'.

Tambahkan Waktu Status dalam Hari - Sedang Berlangsung

Dalam contoh sebelumnya, Waktu Status dalam Hari untuk item kerja tertentu hanya dihitung saat item kerja berada dalam status tertentu. Jika tujuan Anda adalah untuk memiliki waktu dalam status untuk item kerja tertentu dihitung terhadap rata-rata terus menerus, Anda harus mengubah perhitungan. Misalnya, jika kita ingin melacak status "Sedang Berlangsung", kita menambahkan kolom terhitung State Time in Days - In Progress .

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Time in Days - In Progress = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
   'View Name'[Date] <= EARLIER('View Name'[Date]),
   'View Name'[State] = "In Progress"
) + 0

Catatan

Anda mungkin perlu merevisi definisi berdasarkan status alur kerja yang digunakan oleh proyek Anda. Misalnya, proyek yang digunakan dalam contoh dalam artikel ini menggunakan status alur kerja 'Sedang Berlangsung', namun, proses Agile, Scrum, dan CMMI biasanya menggunakan status 'Aktif' atau 'Berkomitmen' untuk mewakili pekerjaan yang sedang berlangsung. Untuk gambaran umum, lihat Status alur kerja dan kategori status.

Gambar berikut menunjukkan efek mempertimbangkan semua waktu dalam status untuk setiap item kerja yang ada (ditunjukkan kiri) versus hanya item kerja tersebut dalam status tertentu pada hari tertentu (ditunjukkan kanan).

Perbandingan Tren Waktu Rata-Rata dalam Status

Tren Waktu Status dalam Hari dari beberapa status

Menganalisis performa di beberapa status juga dimungkinkan menggunakan pola "Berkelanjutan". Namun, pendekatan ini hanya berfungsi dengan bagan tren.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Time in Days - Working States = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
   'View Name'[Date] <= EARLIER('View Name'[Date]),
   'View Name'[State] IN { "Committed", "In Progress" }
) + 0

Catatan

Anda mungkin perlu merevisi definisi berdasarkan status alur kerja yang digunakan oleh proyek Anda. Misalnya, jika proyek Anda menggunakan 'Aktif' sebagai ganti 'Berkomitmen' atau 'Diusulkan'.

Bagan sebelah kiri menunjukkan rata-rata gabungan sementara sisi kanan memperlihatkan setiap status individual.

Perbandingan tren beberapa status

Dapatkan Waktu Status dalam Hari- Terbaru untuk beberapa status

Anda menggunakan kolom Terhitung Waktu Status dalam Hari- Terbaru saat membuat tren. Dengan filter pada status, kolom State Time in Days dan Is Last Day in State menyediakan cara sederhana untuk mendapatkan total waktu setiap item kerja atau grup item kerja yang dihabiskan dalam serangkaian status.

Waktu Terbaru di Negara Bagian

Tambahkan Status Sebelumnya

Kolom Terhitung Tanggal sebelumnya juga dapat digunakan untuk mencari nilai sebelumnya seperti status sebelumnya untuk setiap item kerja.

Penting

Mengharuskan Anda menambahkan kolom terhitung Tanggal Sebelumnya ke tabel.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Previous =
LOOKUPVALUE (
    'View Name'[State],
    'View Name'[Work Item Id], 'View Name'[Work Item Id],
    'View Name'[Date], 'View Name'[Date Previous]
)

Kolom terhitung ini menggunakan LOOKUPVALUE, dijelaskan nanti dalam artikel ini.

Parameter pertama LOOKUPVALUE , 'View Name'[State], menentukan untuk mengembalikan nilai [State].

Parameter berikutnya, 'View Name'[Work Item Id], 'View Name'[Work Item Id], menentukan bahwa hanya baris dengan ID item kerja yang cocok sebagai baris saat ini yang harus dipertimbangkan.

Dan, parameter terakhir, 'View Name'[Date], 'View Name'[Date Previous], menentukan bahwa tanggal baris yang dikembalikan harus memiliki [Tanggal] yang cocok dengan [Tanggal Sebelumnya] dari baris saat ini. Dalam rekam jepret, hanya satu baris yang dapat memenuhi kriteria ini.

Tambahkan Status Diubah

Dengan menggunakan kolom Status Sebelumnya, kita dapat menandai baris untuk setiap item kerja tempat transisi status terjadi. Kolom terhitung Tahap diubah memiliki dua pertimbangan khusus:

  • Nilai kosong *Status Sebelumnya, yang kita atur ke Tanggal Dibuat dari item kerja
  • Pembuatan item kerja dianggap sebagai transisi status

Penting

Mengharuskan Anda menambahkan kolom terhitung Status Sebelumnya ke tabel.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Changed =
IF (
    ISBLANK ( 'View Name'[State Previous] ),
    'View Name'[Created Date].[Date] = 'View Name'[Date],
    'View Name'[State Previous] <> 'View Name'[State]
)

Kolom terhitung adalah nilai boolean yang mengidentifikasi apakah baris adalah transisi status. Dengan menggunakan Not Equal To operator, Anda menangkap baris dengan benar di mana status sebelumnya tidak cocok dengan status saat ini, yang berarti perbandingan mengembalikan True seperti yang diharapkan.

Tambahkan Alur Status

Dengan kolom terhitung Status Sebelumnya dan Status Diubah , Anda bisa membuat kolom yang mengilustrasikan Alur Status untuk item kerja tertentu. Membuat kolom ini bersifat opsional untuk tujuan artikel ini.

Penting

Mengharuskan Anda menambahkan kolom terhitung Status Sebelumnya dan Status Diubah ke tabel.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Flow = 
IF([State Changed], [State Previous], [State]) & " => " & [State]

Tambahkan Jumlah Perubahan Status

Saat kita beralih ke langkah-langkah yang lebih rumit, kita harus memiliki representasi dari jumlah total perubahan status untuk membandingkan baris data untuk item kerja tertentu. Kami mendapatkan representasi dengan menambahkan kolom terhitung Jumlah Perubahan Status.

Penting

Mengharuskan Anda menambahkan kolom terhitung Status Diubah ke tabel.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Change Count = 
CALCULATE (
    COUNTROWS ( 'View Name' ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State Changed]
) + 0

Tambahkan Jumlah Perubahan Status - Waktu Mulai Ulang Terakhir yang Diusulkan dan Status dalam Hari

Waktu Mulai Ulang Status dalam Hari adalah perhitungan yang cukup kompleks. Langkah pertama adalah menemukan terakhir kali item kerja berada dalam status diusulkan. Tambahkan Jumlah Perubahan Status - Kolom terhitung Terakhir yang Diusulkan.

Catatan

Anda mungkin perlu merevisi definisi berikut berdasarkan status alur kerja yang digunakan oleh proyek Anda. Misalnya, jika proyek Anda menggunakan 'Baru' sebagai pengganti 'Diusulkan'.

Dari tab Pemodelan , pilih Kolom baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Change Count - Last Proposed = 
CALCULATE (
    MAX ( 'View Name'[State Change Count] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State] = "Proposed"
)

Kemudian, lihat lebih jauh ke masa lalu dan lihat apakah ada beberapa status aktif sebelum status yang diusulkan ini. Terakhir, jumlahkan semua hari ketika item kerja dalam status aktif sebelum yang terakhir diusulkan.

Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

State Restart Time in Days = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State Change Count] < EARLIER('View Name'[State Change Count - Last Proposed] ),
    'View Name'[State] <"Proposed"
) + 0

Karena Waktu Mulai Ulang Status dalam Hari diperbarui untuk setiap baris data, Anda dapat membuat tren untuk mengevaluasi pengerjaan ulang di seluruh sprint tertentu atau memeriksa pengerjaan ulang untuk item kerja individual dengan menggunakan Is Current.

Tambahkan Waktu Pengerjaan Ulang Status dalam Hari

Mirip dengan Waktu Mulai Ulang Status dalam Hari, Waktu Pengerjaan Ulang Status dalam Hari mencari pertama kali item kerja berada dalam kategori Status selesai. Setelah itu, setiap hari item kerja dihabiskan dalam status selain Selesai, dihitung sebagai pengerjaan ulang.

  1. Buat kolom "Jumlah Perubahan Status - Pertama Selesai". Kolom ini melacak berapa kali item kerja beralih ke status Selesai dari status lain.

    State Change Count - First Completed =
    VAR CompletedState = "Completed"
    RETURN
    CALCULATE(
       COUNTROWS('YourTable'),
       FILTER(
           'YourTable',
           'YourTable'[State] = CompletedState
           && 'YourTable'[State Change Date] = MIN('YourTable'[State Change Date])
       )
    )
    
  2. Dari tab Pemodelan , pilih Kolom Baru lalu ganti teks default dengan kode berikut dan pilih tanda centang.

    State Rework Time in Days = 
    IF (
        ISBLANK ( 'View Name'[State Change Count - First Completed] ),
        0,
        CALCULATE (
            SUM ( 'View Name'[Date Diff in Days] ),
            ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
            'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
            'View Name'[State Change Count] EARLIER ( 'View Name'[State Change Count - First Completed] ),
            'View Name'[State] IN {"Completed", "Closed", "Cut" } = FALSE()
        ) + 0
    )
    

    Catatan

    Anda mungkin perlu merevisi definisi di atas berdasarkan status alur kerja yang digunakan oleh proyek Anda. Misalnya, jika proyek Anda menggunakan Selesai sebagai ganti Tertutup, dan sebagainya.

Fungsi DAX

Informasi tambahan disediakan di bagian ini untuk fungsi DAX yang digunakan untuk membuat kolom terhitung dan mengukur yang ditambahkan dalam artikel ini. Lihat juga DAX, Fungsi kecerdasan waktu.

Fungsi Deskripsi
ALLEXCEPT Menghapus semua filter konteks dalam tabel kecuali filter yang diterapkan ke kolom yang ditentukan. Pada dasarnya, ALLEXCEPT ('View Name'', 'View Name'[Work Item Id]) mengurangi baris dalam tabel menjadi hanya baris yang berbagi ID item kerja yang sama dengan baris saat ini.
CALCULATE Fungsi ini adalah dasar untuk hampir semua contoh. Struktur dasar adalah ekspresi diikuti oleh serangkaian filter yang diterapkan ke ekspresi.
COUNTROWS Fungsi ini, COUNTROWS ( 'View Name' ), cukup menghitung jumlah baris yang tersisa setelah filter diterapkan.
DATEDIFF Mengembalikan jumlah batas interval yang disilangkan di antara dua tanggal. DATEDIFF mengurangi Tanggal Sebelumnya dari Tanggal untuk menentukan jumlah hari di antaranya.
EARLIER Mengembalikan nilai saat ini dari kolom yang ditentukan dalam lulus evaluasi luar dari kolom yang disebutkan. Misalnya, 'View Name'[Date] < EARLIER ( 'View Name'[Date] ) lebih lanjut mengurangi himpunan data hanya ke baris yang terjadi sebelum tanggal untuk baris saat ini yang direferensikan dengan menggunakan EARLIER fungsi . EARLIER tidak mengacu pada tanggal sebelumnya; ini secara khusus mendefinisikan konteks baris kolom terhitung.
ISBLANK Memeriksa apakah nilai kosong, dan mengembalikan TRUE atau FALSE. ISBLANK mengevaluasi baris saat ini untuk menentukan apakah Tanggal Sebelumnya memiliki nilai. Jika tidak, pernyataan If menetapkan Tanggal Diff dalam Hari ke 1.
LASTDATE Kami menerapkan LASTDATE filter ke ekspresi, misalnya LASTDATE ( 'View Name'[Date] ), untuk menemukan tanggal terbaru di semua baris dalam tabel dan menghilangkan baris yang tidak berbagi tanggal yang sama. Dengan tabel rekam jepret yang dihasilkan oleh tampilan Analitik, filter ini secara efektif memilih hari terakhir periode yang dipilih.
LOOKUPVALUE Mengembalikan nilai dalam result_columnName untuk baris yang memenuhi semua kriteria yang ditentukan oleh search_columnName dan search_value.
MAX Mengembalikan nilai numerik terbesar dalam kolom, atau di antara dua ekspresi skalar. Kami menerapkan MAX ( 'View Name'[Date] ), untuk menentukan tanggal terbaru setelah semua filter diterapkan.