# 將替代狀態用於比較分析

如果您想要執行比較分析，您可以使用 Qlik Sense 中的替代狀態。替代狀態可讓您在相同的維度上進行不同的選取，並在單一視覺化中或是以並排方式在兩個或更多的視覺化中比較選取。

您可以透過兩種不同方式在視覺化中使用替代狀態：

* 將狀態套用至視覺化。這會將視覺化的選取連線至狀態的選取。
* 在量值的集合運算式中使用狀態。這對於比較不同狀態的量值非常有用。

[Using alternate state in visualizations to make comparative analysis](https://play.vidyard.com/NJvgT9WcNaVFaZA9Z88A7Z)

## 建立替代狀態

您可以在主項目中建立新的替代狀態：

1. 在替代狀態旁，按一下the 新建 icon。

2. 為新狀態提供名稱。有一些命名限制：

   * 請勿使用 $、0 或是 1 做為狀態名稱。
   * 請勿使用以 $ 或是後面接數字的 $\_ 開頭的狀態名稱，例如 $3。
   * 請勿使用已經做為書籤名稱的狀態名稱。

您現在已建立新的替代狀態，可用以執行比較分析。通常，您會想要建立其他的新狀態，以比較兩個狀態。

## 將替代狀態套用至工作表與視覺化

您可以將狀態套用至視覺化或是工作表。如果要將狀態套用至工作表，則在工作表上的所有視覺化都會繼承此狀態，除非您將另一個狀態套用至特定的視覺化。當您將狀態套用至視覺化時，它會反映在狀態中所做的選取。任何您所做的選取都會套用至狀態，而且會在已套用相同狀態的其他視覺化中反映。

套用替代狀態的最容易方式是將它拖曳至工作表或視覺化上，然後選取套用狀態。

您也可以使用屬性面板中的狀態設定來套用替代狀態：

* 在工作表中，可以在替代狀態下找到設定。
* 在視覺化中，可以在外觀 &gt; 替代狀態下找到設定。

您可以選取：

* 在主項目中定義的任何替代狀態。
* &lt;已繼承&gt;，若是如此，會使用為工作表定義的狀態。
* &lt;預設狀態&gt;，這代表未套用替代狀態的狀態。

## 使用在視覺化中的替代狀態

除了將狀態套用至視覺化之外，您也可以在量值的集合運算式中使用替代狀態。當您想要為不同的維度選取以並排方式比較量值時，這會非常有用。

您可以在集合運算式中將替代狀態設為識別碼。如果您想要在視覺化 (例如條形圖) 中對名為 Group1 的狀態使用量值 `Sum(Sales)`，您可以使用下列運算式做為量值：

`Sum({Group1}Sales)`

若要比較名為 Group2 的不同狀態，您可以使用 `Sum({Group2}Sales)` 運算式來建立其他量值。

條形圖現在會針對在 Group1 中的選取顯示銷售額，並與 Group2 的銷售額並列顯示。

如需關於集合運算式的詳細資訊，請參閱[集合分析](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)。

## 取得關於替代狀態的選取資訊

您可以在選取列中查看不同狀態的選取。

如需詳細資訊，請參閱[使用選項查看](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Selections/SelectionsToolbar/work-with-selections.htm)。

您也可能希望能夠使用有關在視覺化的標籤或標題中，於替代狀態中做了哪些以及多少選取的資訊。您可以使用下列含 state\_name 參數的圖表函數，以傳回與指定狀態名稱關聯的選取：

* GetCurrentSelections() 會傳回所有目前的選取。

  [GetCurrentSelections - 圖表函數](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getcurrentselections.htm)

* GetFieldSelections() 傳回欄位的目前選取。

  [GetFieldSelections - 圖表函數](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getfieldselections.htm)

* GetSelectedCount() 會傳回欄位中已選取的值的數目。

  [GetSelectedCount - 圖表函數](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getselectedcount.htm)

## 在替代狀態中展開變數

您可以指定要在展開變數時使用哪個狀態。特定狀態中的變更不會影響在另一個狀態中展開的變數值。若您沒有指定狀態，變數會在預設狀態下展開。

範例：

若您具有名稱為 `MyState` 的狀態，以及名稱為 `vMyVar` 的變數：

* `$(vMyVar)` 在預設狀態下展開變數。
* `$({MyState} vMyVar)` 在 `MyState` 狀態下展開變數。

## 限制

如果您已將視覺化的狀態設定為 &lt;已繼承&gt; 以外的任何其他值，則無法將視覺化新增至主項目。

## 比較分析範例

在這個範例中，我們希望能夠為銷售區域的不同選取比較產品線的銷售數字。我們想要選取可動態比較的區域，以單一區域或區域組合的方式來比較。

### 資料集與應用程式

如果您想要追蹤這個範例，需要下載 Qlik Sense Tutorial - Building an App 以取得資料集。如果您已完成教學課程，可以使用所建立的應用程式。否則，您需要建立應用程式，在 Tutorials source 資料夾中新增所有六個資料檔案，並在資料管理員中使用自動建議來關聯它們。

### 建立替代狀態

對於此範例，我們需要兩個替代狀態。在主項目 &gt; 替代狀態中：

1. 建立名為 Group 1 的新狀態。
2. 建立名為 Group 2 的新狀態。

您現在已在此範例中建立兩個替代狀態。

### 為選取建立篩選窗格

請執行下列動作：

1. 使用區域欄位新增篩選窗格。
2. 編輯篩選窗格的標籤，使其顯示為 =StateName()。這使得辨別它們變得較容易，因為在篩選窗格中未指出狀態。StateName() 函數會傳回套用至函數的狀態。
3. 將 Group 1 狀態拖曳至篩選窗格上，然後選取套用狀態。
4. 使用區域欄位新增其它篩選窗格。
5. 編輯第二個篩選窗格的標籤，使其顯示為 =StateName()。
6. 將 Group 2 狀態放在第二個篩選窗格上，然後選取套用狀態。

您現在已建立兩個篩選窗格，可用以控制兩個狀態中每個的選取。當您在 Group 1 篩選窗格中進行選取時，相同的選取會套用至 Group 1 狀態，這將會反映在連線至該狀態的所有視覺化中。

### 為分析建立條形圖

請執行下列動作：

1. 使用 Group1Sales 名稱建立主項目量值。

   將運算式設定為 `Sum({[Group 1]}[Sales])`。

   這個運算式會為 Group 1 狀態中所有選取的銷售額加總。

   將標籤運算式設定為 `'Sales '&GetCurrentSelections(chr(13)&chr(10), '=', ',' ,9,'Group 1')`。

   我們使用標籤運算式能夠將狀態的目前選取顯示為圖表中的標籤，而非預設標籤。

2. 使用 Group2Sales 名稱建立其他主項目量值。

   將運算式設定為 `Sum({[Group 2]}[Sales])`。

   將標籤運算式設定為 `'Sales '&GetCurrentSelections(chr(13)&chr(10), '=', ',' ,9,'Group 2')`。

3. 將條形圖新增至工作表。

4. 將產品線欄位設為維度。

5. 新增 Group1Sales 與 Group2Sales 量值。

您現在已建立條形圖，顯示在篩選窗格中所選取的兩個區域群組的產品線銷售額。當您在其中一個篩選窗格中進行新選取時，對應的量值會根據新選取來改變。

### 探索

您現在可以在 Group 1 與 Group 2 中進行選取，然後查看在條形圖中選取的區域組合的結果。

## 權限

如需更多關於建立和刪除替代狀態所需權限的資訊，請參閱 [使用主項目的權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Assets/work-with-master-items.htm#MasterItemsPermissions)。