Max - 圖表函數
Max() 會找到已彙總之資料中的最高值。透過指定 rank n,可以找到第 n 個最高的值。
提示備註您可能也想瞭解 FirstSortedValue 和 RangeMax,它們具有類似 Max 函數的功能。
語法:
Max([{SetExpression}] [TOTAL [<fld {,fld}>]] expr [,rank])
傳回的資料類型: 數值
引數expr | 包含待測量之資料的運算式或欄位。 |
rank | rank 預設值為 1,這對應於最大值。將 rank 指定為 2,將傳回第二個最大值。如果 rank 為 3,將傳回第三個最大值,依此類推。 |
SetExpression | 依預設,彙總函數將彙總選項所定義的一組可能記錄。集合分析運算式可定義一組替代的記錄。 |
TOTAL | 如果單字 TOTAL 位於函數引數之前,則會在提供現行選項的所有可能值上進行計算,而不僅僅是關於目前維度值的那些選項,也就是說,它會忽略圖表維度。 透過使用 TOTAL [<fld {.fld}>] (其中 TOTAL 限定詞後面是做為圖表維度變數子集之一或更多欄位名稱的清單),您可建立總可能值的子集。 定義彙總範圍 |
範例:圖表運算式Max(UnitSales) | 傳回 UnitSales 欄位中的最高值。 |
Max(UnitSales*UnitPrice) 訂單值的計算方式為售出單位數 (UnitSales) 乘以單位價格。 | 傳回計算所有 (UnitSales)*(UnitPrice) 可能值結果的最高值。 |
Max(UnitSales, 2) | 傳回次高的值。 |
Max(TOTAL UnitSales) | TOTAL 限定詞表示找到最高的可能值,忽略圖表維度。針對具有 Customer 作為維度的圖表,TOTAL 限定詞會確認傳回完整資料集間的最大值,而非各客戶的最大 UnitSales。 |
Max({1} TOTAL UnitSales) | 集合分析運算式 {1} 會定義要評估為 ALL 的記錄組合,與選取的任何選項無關。例如,如果選取了特定客戶,這仍將傳回整個資料集的最大 UnitSales。 |
範例 - Max 基礎事項
概述
資料集包含依月份劃分的產品銷售數據。我們想要確定每種產品的最大銷售值以及發生這種情況的月份。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入到稱為 Example 之資料表格的資料集。
資料表格中的欄位如下:
Customer
UnitSales
UnitPrice
載入指令碼
Example:
LOAD * inline [
Customer|UnitSales|UnitPrice
Astrida|4|16
Astrida|10|15
Astrida|9|9
Betacab|5|10
Betacab|2|20
Betacab||25
Canutility|8|15
Canutility||19
] (delimiter is '|');
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度:
建立下列量值:
=Max(UnitSales),用來計算最大 UnitSales 值。
=Max(UnitSales*UnitPrice),用來逐列計算 UnitSales 乘以 UnitPrice 後的最大值。
=Max(UnitSales, 2),用來計算次高值。
=Max(TOTAL UnitSales),無論圖表維度如何,都用來計算最高總計。
=Max({1} TOTAL UnitSales),用來計算最高總計,忽略所有選項。
Results table Customer | Max(UnitSales) | Max(UnitSales*UnitPrice) | Max(UnitSales, 2) | Max(TOTAL UnitSales) | Max({1} TOTAL UnitSales) |
---|
Totals | 10 | 150 | 9 | 10 | 10 |
---|
Astrida | 10 | 150 | 9 | 10 | 10 |
Betacab | 5 | 50 | 2 | 10 | 10 |
Canutility | 8 | 120 | - | 10 | 10 |
在此範例中,請觀察以下事項:
在第一個量值 (Max(UnitSales)) 中,客戶 Astrida 的 UnitSales 最高值為 10。此欄中的 Totals 儲存格傳回 10,因為此值也是整個資料集中最高的 UnitSales 值。
在第二個量值 (Max(UnitSales*UnitPrice)) 中,為 150 傳回 Astrida。將 UnitSales 乘以 UnitPrice 時,這是該客戶的最高值。此欄的 Totals 儲存格也傳回 150,因為這也是整個資料集中最高的計算值。
在第三個量值 (Max(UnitSales, 2)) 中,客戶 Astrida 的 UnitSales 次高值為 9。此值也是所有三個客戶的次高值,因此 Totals 列也傳回 9。
第四個量值 (Max(TOTAL UnitSales)) 傳回值 10。這是獨立於客戶維度找到的最高值,因此所有列都傳回相同的值。不過,如果您選取客戶 Betacab,則表格只會傳回該客戶的值,在本案例中為 5,因為這是 Betacab 在所有產品中最高的 UnitSales。
第五個量值 (Max({1} TOTAL UnitSales)) 無論選取哪個 Customer 都會傳回值 10,因為使用了集合修改 {1}。例如,如果您選取 Betacab,則此欄將繼續傳回值 10。
範例 - 依月份計算最高銷售額的 Max 使用情境
概述
資料集包含依月份劃分的產品銷售數據。銷售經理想要確定每種產品的最大銷售值以及發生這種情況的月份。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入到稱為 Example 之資料表格的資料集。
資料表格中的欄位如下:
載入指令碼
Example:
Load * inline [
Product,Sales,Month
A, 500, 2024-01-01
A, 700, 2024-02-01
A, 600, 2024-03-01
B, 300, 2024-01-01
B, 800, 2024-02-01
B, 450, 2024-03-01
C, 550, 2024-01-01
C, 620, 2024-02-01
C, 710, 2024-03-01
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
建立下列量值:
Results tableProduct | Month | If(Sales = Max(TOTAL <Product> Sales), Sales) |
---|
A | 2024-02-01 | 700 |
B | 2024-02-01 | 800 |
C | 2024-03-01 | 710 |
量值的結果會傳回每種產品的最大銷售值以及達到此值的月份。例如,Product B 在 2024-02-01 的銷售額最高 (800)。