早些時候

適用於:匯出數據行計算數據表量值視覺計算

傳回所提及數據行外部評估階段中指定數據行的目前值。

EARLIER 適用於您想要使用特定值做為輸入的巢狀計算,並根據該輸入產生計算。 在 Microsoft Excel 中,您只能在目前數據列的內容中執行這類計算;不過,在 DAX 中,您可以儲存輸入的值,然後使用來自整個數據表的數據進行計算。

EARLIER 主要用於計算結果列的內容。

語法

EARLIER(<column>, <number>)  

參數

術語 定義
column 解析為數據行的數據行或表達式。
num (選擇性)外部評估階段的正數。

下一個評估等級以 1 表示;兩個層級的呈現方式為 2,依此表示。

當省略預設值為 1 時。

傳回值

在外部評估階段 number,從 column的數據列目前值。

異常

錯誤的描述

言論

  • 如果數據表掃描開始之前有數據列內容,EARLIER 就會成功。 否則會傳回錯誤。

  • EARLIER 的效能可能很慢,因為理論上,它可能需要執行一些接近相同數目的數據列總數(在數據行中)的作業(視表達式的語法而定)。 例如,如果您在數據行中有10個資料列,可能需要大約100個作業;如果您有 100 個數據列,則可能會執行接近 10,000 個作業。

  • 在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

注意

實際上,VertiPaq 記憶體內部分析引擎會執行優化以減少實際計算數目,但在建立涉及遞歸的公式時,您應該謹慎。

為了說明使用 EARLIER,必須建置計算排名值的案例,然後在其他計算中使用該排名值。

下列範例是以這個簡單數據表為基礎,ProductSubcategory,其中顯示每個 ProductSubcategory 的總銷售額。

最後一個數據表,包括排名數據行,如下所示。

ProductSubcategoryKey EnglishProductSubcategoryName TotalSubcategorySales SubcategoryRanking
18 Bib-Shorts $156,167.88 18
26 自行車機架 $220,720.70 14
27 自行車看臺 $35,628.69 30
28 瓶子和籠子 $59,342.43 24
5 底括弧 $48,643.47 27
6 剎車 $62,113.16 23
19 $47,934.54 28
7 $8,847.08 35
29 清潔工 $16,882.62 32
8 Cranksets $191,522.09 15
9 脫軌器 $64,965.33 22
30 擋泥板 $41,974.10 29
10 $74,727.66 21
20 手套 $228,353.58 12
4 車把 $163,257.06 17
11 耳機 $57,659.99 25
31 頭盔 $451,192.31 9
32 水化套件 $96,893.78 20
21 球衣 $699,429.78 7
33 36
34 $15,059.47 33
1 山地自行車 $34,305,864.29 2
12 山框 $4,511,170.68 4
35 Panniers 36
13 踏板 $140,422.20 19
36 $12,695.18 34
2 公路自行車 $40,551,696.34 1
14 道路框架 $3,636,398.71 5
15 馬鞍 $52,526.47 26
22 短褲 $385,707.80 10
23 襪子 $28,337.85 31
24 緊身 衣 $189,179.37 16
37 輪胎和管子 $224,832.81 13
3 旅遊自行車 $13,334,864.18 3
16 導覽框架 $1,545,344.02 6
25 背心 $240,990.04 11
17 車輪 $648,240.04 8

建立排名值

取得數據列中指定值的排名值的方法之一,就是計算相同數據表中大於或小於所比較之值的數據列數目。 這項技術會傳回數據表中最大值的空白或零值,而相等值會具有相同的順位值,而下一個值(在相等值之後)會有非連續的順位值。 請參閱下列範例。

使用下列公式建立新的導出數據行 SubCategorySalesRanking

= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1  

下列步驟將更詳細地描述計算方法。

  1. EARLIER 函式會取得數據表中目前數據列 TotalSubcategorySales 的值。 在此情況下,因為進程正在啟動,所以它是數據表中的第一個數據列

  2. EARLIER([TotalSubcategorySales]) 評估為 $156,167.88,外部迴圈中的目前數據列。

  3. FILTER 函式現在會傳回數據表,其中所有數據列的值 TotalSubcategorySales 大於 $156,167.88(這是 EARLIER目前的值)。

  4. COUNTROWS 函式會計算篩選數據表的數據列,並將該值指派給目前數據列加上 1 的新計算結果列。 需要新增 1,以防止排名最高的值變成空白。

  5. 計算結果列公式會移至下一個數據列,並重複步驟 1 到 4。 這些步驟會重複執行,直到達到數據表結尾為止。

EARLIER 函式一律會在目前數據表作業之前取得數據行的值。 如果您需要先從迴圈取得值,請將第二個自變數設定為 2。

EARLIEST 函式
篩選函式