Dimensionality - 圖表函數
Dimensionality() 傳回目前列的維度數目。如果是樞紐分析表格,則該函數傳回有非彙總內容 (亦即不包含部分加總或摺疊彙總) 之維度資料行的總數目。
語法:
Dimensionality ( )
傳回的資料類型: 整數
限制:
此函數僅適用於圖表。對於所有圖表類型 (除了樞紐分析表以外),此函數會傳回所有列中的維度數目 (總計列除外,該列的維度數目為 0)。
當任何圖表運算式使用了此圖表函數時,就不允許在圖表中依據 Y 值排序,或在表格中依據運算式資料行排序。因此,這些排序替代選項會自動停用。若您在視覺化或表格中使用此圖表函數,視覺化的排序將還原為對此函數的排序輸入。
範例:使用維度的圖表運算式
概述
在樞紐分析表中使用 Dimensionality 函數作為圖表運算式,您想在此根據具有非彙總資料的列中的維度數量套用不同儲存格格式。此範例將背景色彩套用至符合給定條件的表格儲存格。
開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
資料表格中的欄位如下:
-
Country
-
Product
-
Sales
-
Budget
-
載入指令碼
Example:
Load * inline [
Country, Product, Sales, Budget
Sweden, AA, 100000, 50000
Germany, AA, 125000, 175000
Canada, AA, 105000, 98000
Norway, AA, 74850, 68500
Ireland, AA, 49000, 48000
Sweden, BB, 98000, 99000
Germany, BB, 115000, 175000
Norway,BB,71850,68500
Ireland,BB,31000,48000
] (delimiter is ',');
如需更多關於使用內嵌載入的資訊,請參閱 使用內嵌載入以載入資料。
結果
載入資料並開啟工作表。建立新的樞紐分析表並將這些欄位新增為列維度:
-
Country
-
Product
建立下列量值:
-
=Sum(Sales),用來計算 Sales 值的總和。
-
=Sum(Budget),用來計算 Budget 值的總和。
-
=Dimensionality(),用來傳回目前列的維度數目。
在 Sum(Sales) 量值的屬性面板中,輸入下列運算式作為背景色彩運算式:
=If(Dimensionality()=1 and Sum(Sales)<Sum(Budget),RGB(255,156,156),
If(Dimensionality()=2 and Sum(Sales)<Sum(Budget),RGB(178,29,29)
)
)
背景色彩運算式的輸出在滿足適用條件時會將淺紅色或深紅色的儲存格背景套用至表格儲存格。
Country | |||
---|---|---|---|
Product | |||
Sum(Sales) | Sum(Budget) | Dimensionality() | |
(+) Canada | 105000 | 98000 | 1 |
(-) Germany | 240000 | 350000 | 1 |
AA | 125000 | 175000 | 2 |
BB | 115000 | 175000 | 2 |
(+) Ireland | 80000 | 96000 | 1 |
(+) Norway | 146700 | 137000 | 1 |
(+) Sweden | 198000 | 149000 | 1 |
顯示第一列維度 (Country) 時,Dimensionality 函數會傳回 1。展開一列維度 (例如 Germany) 以顯示第二列維度 (Product) 時,函數會傳回 2。
量值 Sum(Sales) 的背景色彩運算式會根據維度和銷售額執行計算,以醒目顯示不同的結果。若維度為 1,任何 Sum(Sales) 小於 Sum(Budget) 的 Country 都會顯示淺紅色,在此範例中為 Germany 和 Ireland。若維度為 2,任何 Sum(Sales) 小於 Sum(Budget) 的 Product 都會顯示淺紅色,在此範例中為 Germany 的 AA 和 BB。
範例 - Dimensionality 使用情境
概述
此範例使用 Dimensionality 函數將詳細資訊套用至報告並醒目顯示某些維度的表格儲存格。
開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
資料表格中的欄位如下:
-
Region
-
SalesProduct
-
Year
-
SalesValue
-
Quantity
-
Product
-
載入指令碼
Example:
LOAD * INLINE [
Region, SalesProduct, Year, SalesValue, Quantity, Profit
North, Laptop, 2023, 20000, 15, 4000
North, Mobile, 2023, 15000, 25, 3000
North, Laptop, 2022, 18000, 20, 3500
North, Mobile, 2022, 14000, 22, 2800
South, Laptop, 2023, 22000, 18, 4500
South, Mobile, 2023, 16000, 27, 3200
South, Laptop, 2022, 19000, 19, 3800
South, Mobile, 2022, 15000, 23, 3100
East, Laptop, 2023, 21000, 16, 4200
East, Mobile, 2023, 15500, 24, 3100
East, Laptop, 2022, 18500, 18, 3900
East, Mobile, 2022, 14500, 21, 2950
West, Laptop, 2023, 23000, 17, 4700
West, Mobile, 2023, 16500, 26, 3300
West, Laptop, 2022, 19500, 20, 4000
West, Mobile, 2022, 15500, 24, 3100
North, Tablet, 2023, 12000, 10, 2500
South, Tablet, 2023, 13000, 12, 2700
East, Tablet, 2023, 12500, 11, 2600
West, Tablet, 2023, 13500, 13, 2800
];
結果
載入資料並開啟工作表。建立新的樞紐分析表並將這些欄位新增為列維度:
-
Year
-
SalesProduct
-
Region
建立下列量值:
-
=If(Dimensionality()=1, 'Total', 'Detail'),用來指示這是 Total 或 Detail 列。
-
=If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level')),用來指示正在顯示的維度層級。
-
=Sum(SalesValue),用來計算銷售總和。
在 Sum(SalesValue) 量值的屬性面板中,輸入下列運算式作為背景色彩運算式:
=If(Dimensionality()=1, LightGray())
背景色彩運算式的輸出在維度是 1 時會將淺灰色儲存格背景套用至表格儲存格。
年 | |||
---|---|---|---|
SalesProduct | |||
區域 | |||
If(Dimensionality()=1, 'Total', 'Detail') | If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level')) | Sum(SalesValue) | |
(+) 2022 | 總計 | 摘要-層級 | 134000 |
(-) 2023 | 總計 | 摘要-層級 | 200000 |
(-)筆記型電腦 | 詳細資料 | 產品-層級 | 86000 |
東 | 詳細資料 | 區域-層級 | 21000 |
北 | 詳細資料 | 區域-層級 | 20000 |
南 | 詳細資料 | 區域-層級 | 22000 |
西方 | 詳細資料 | 區域-層級 | 23000 |
(-) 行動裝置 | 詳細資料 | 產品-層級 | 63000 |
(-) T平板電腦 | 詳細資料 | 產品-層級 | 51000 |
您可以看到如何使用 Dimensionality 函數來增強報告的細節並醒目顯示所有頂層列維度。