LuckyTemplates 時間表和工資 DAX 解決方案

LuckyTemplates 時間表和工資 DAX 解決方案

該博客以 LuckyTemplates 時間表和相關的工資成本為中心。我將向您展示如何使用 DAX 計算時間數據和工資類型。我將演示一個使用度量的 DAX 解決方案,另一個使用計算列的解決方案。您可以在本博客底部觀看本教程的完整視頻。

此示例來自我們在 LuckyTemplates 中運行的這是我們在組織和企業中經常遇到的真實場景,而 LuckyTemplates 正是幫助簡化和加快工作的合適工具。

那麼,讓我們開始吧。

目錄

LuckyTemplates 時間表和工資:計算列解決方案

對於使用計算列的計算 DAX 解決方案,我轉到時間表並創建一個度量(我稱之為CC-Regular Hours)來計算常規時間。

在這個公式中,我從表中獲取小時數並將它們放入變量 ( ) 中。然後我計算是假期、週末還是普通日子。使用函數,我利用數據模型來確定它,然後我使用兩個變量(_IsHolidayDay_IsWeekendDay)來確定第三個變量(_IsRegularDay)。

最後,我使用 語句檢查正常時間。其他兩個(假期和周末)將是。如果是正常的一天,我想返回最多八小時的小時數,然後我將使用 RETURN Result結構。

LuckyTemplates 時間表和工資 DAX 解決方案

我將為加班時間公式 ( CC-Overtime Hours )做幾乎相同的事情——我將只更改 SWITCH TRUE 語句。這將返回週末的時間。如果是普通的一天,它將返回八小時以上的小時數。

LuckyTemplates 時間表和工資 DAX 解決方案

對於假期時間,如果是假期,它將返回所有時間,如果是周末或常規時間,則返回空白。

LuckyTemplates 時間表和工資 DAX 解決方案

現在讓我們繼續談談工資。對於正常工作時間的工資公式,我將利用我剛剛為正常工作時間製作的計算列。我將使用WageType , Straight Time來確定合適的工資。

我從數據模型中獲取員工的小時工資,然後使用 LOOKUPVALUE斷開連接的工資類型表中獲取要應用的乘數。最後,我計算變量Result ,然後在最後有RETURN Result 。

LuckyTemplates 時間表和工資 DAX 解決方案

對於加班,我將工資類型更改為Time and a Half

LuckyTemplates 時間表和工資 DAX 解決方案

我會為假期工資做類似的事情,但我只是將工資類型更改為Double Time

LuckyTemplates 時間表和工資 DAX 解決方案

最後,我將做一個簡單的求和以使總值可供我使用。

LuckyTemplates 時間表和工資 DAX 解決方案

當我將這些列拖到報告中時,我們就可以看到結果。

LuckyTemplates 時間表和工資 DAX 解決方案

LuckyTemplates 時間表和工資:使用度量的 DAX 解決方案

我將做與我為計算列所做的幾乎相同的事情,但這次我將做一個小的改變。

我無法直接從表中訪問時間值,因此我將在此處使用 SELECTEDVALUE 來與視覺對像中顯示的特定時間條目關聯的小時數。除此之外,代碼與計算列版本的代碼相同。

LuckyTemplates 時間表和工資 DAX 解決方案

我在加班時間和假期時間做了非常相似的事情。它與計算列的規則相同。

至於工資,他們的計算方式非常相似。與計算列的唯一區別是小時變量。我正在使用我計算的度量值。我也對加班工資和假期工資做同樣的事情。

LuckyTemplates 時間表和工資 DAX 解決方案

然後,我將為總工資寫一個簡單的總和度量。

LuckyTemplates 時間表和工資 DAX 解決方案

現在我將這些措施添加到表中,以便我們可以看到結果。請注意,沒有任何度量顯示總數。要在此處查看度量的總值,我將使用fix incorrect totals pattern。為此,我需要創建使用虛擬表來模擬我這裡的物理表的度量。

LuckyTemplates 時間表和工資 DAX 解決方案

修復不正確的總計模式

要解決此問題,我需要創建使用虛擬表來模擬我在此處擁有的物理表的措施。因此,對於總小時數,我使用構造來創建一個具有時間 ID 和小時數的虛擬表。然後我在虛擬表上使用來計算值。

LuckyTemplates 時間表和工資 DAX 解決方案

我將把它拖到下面的表格中,現在我們可以看到總時數。

LuckyTemplates 時間表和工資 DAX 解決方案

我將為工資做同樣的事情,我將使用 SUMMARIZE。然後對於結果,我將對我已經創建的度量使用函數,對虛擬表使用SUMX 。

LuckyTemplates 時間表和工資 DAX 解決方案

然後我將其添加到此處的表中,我們可以看到我們現在有總工資。

LuckyTemplates 時間表和工資 DAX 解決方案

另一件事是,當我將我的總工資度量值放在一個包含部門和工資類型的簡單條形圖中時,您會看到我在這裡沒有得到任何值。

LuckyTemplates 時間表和工資 DAX 解決方案

這是修復的不正確總計問題的一部分。我發現解決此問題的最佳方法之一是使用虛擬表並更改度量。

所以我會去掉沒有虛擬表的那一個,我會添加一個有虛擬表的。

LuckyTemplates 時間表和工資 DAX 解決方案


LuckyTemplates 計算列與度量:比較
計算列 LuckyTemplates:技巧和最佳實踐
度量分支:LuckyTemplates 開發策略

結論

兩種 DAX 解決方案都非常適合這個 LuckyTemplates 時間表和工資挑戰。但是,它們也各有利弊。

使用度量的好處是它們是最佳實踐。它們不會在模型刷新時計算,而是僅在視覺中實際使用度量時計算。他們的缺點是,當我們使用虛擬表來表示事物以正確計算它們時,它確實需要一些額外的 DAX 代碼。但這根本不是什麼大事。

至於計算列,我確實發現它們更容易學習和可視化。對於那些來自 Excel 的人來說,它們是一個非常熟悉的起點。但是,計算列的局限性之一是它們實際上是在數據模型中物理創建的,它們確實會增加模型的大小,這會降低報表的性能。

一般規則是您不應在事實表上創建計算列。如果您必須創建計算列,請嘗試在維度表上進行。

我個人使用計算列對一些維度表進行分類,其中要顯示的維度很多。

我希望你喜歡這個並且學到了很多東西。您可以在下方觀看本教程的完整視頻。

乾杯!

格雷格


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的