簡體   English   中英

Spotfire-在交叉表中將一行值除以另一行

[英]Spotfire - Dividing one row value with another in a cross table

我有一個交叉表,其中顯示了跨月出售的水果,如下所示:
表格1]

現在,我希望看到一個表格(如下所示),該表格將一個特定的列的一​​個單元格與另一個單元格分開:
表2]

請通過OVER語句告訴我是否可行。


更新:

@Chris-我已經轉換了原始表格的訪問權限,可以在Spotfire中創建以下交叉表格可視化。

注意:應用轉換后,現在出售的蘋果,出售的橙子,出售的西瓜是單獨的列。

跨表可視化

但是,我想以以下格式查看交叉表。

轉置表

如果可以的話,請告訴我。 如果可以使用Iron Python腳本實現此目的,那我很好。

謝謝!

由於您的數據采用高皮包骨頭的格式,因此我的原始答案無效。 我將答案保留在其中,以防它對其他人有所幫助,請參閱下文。

通過更新,您似乎已經設法用所需的數據創建了一個交叉表。 如果可以在行軸,列軸和度量軸上顯示精確的軸表達式將很有幫助,但我可以嘗試說明如何根據需要在交叉表中轉置數據。 有關說明,請參見最后一節。

如果采用高大的緊身格式,則在進行顯式比較時將無法使用OVER表達式(至少我認為這是不可能的)。 首先,我想指出,您必須以某種方式決定要比較哪些水果,或者可能要比較所有水果。 確切的解決方案取決於您的實際用例以及所需的動態性。

可能的解決方案:

在交叉表中,將行軸定義為(列名):

<[Axis.Default.Names]>

將時間軸放在列軸上,例如:

<BinByDateTime([Time],"Year.Month",1)>

在測量軸上,現在將添加您感興趣的所有比較,例如:

Sum(if([Fruit]="Apple", [Sold],null)) / Sum(if([Fruit]="Watermelon",[Sold],null)) as [Apples vs Watermelons],
Sum(if([Fruit]="Orange",[Sold],null)) / Sum(if([Fruit]="Watermelon",[Sold],null)) as [Oranges vs Watermelons]

這是我自己的非常小的虛擬數據集的外觀鏈接: 交叉表結果示例

您可以將其與文本區域中的用戶控件結合使用,也可以將$ map()表達式函數結合使用,以在需要時使其更具動態性。 如果您需要很多動態行為,則可能需要更改以使用數據功能。


舊答案

以下是我的原始答案,其中包括關於在這種情況下不適用的數據的假設。 如果有人真的有這種情況,請將其保留在此處。

在表1中,您有兩個分類軸,一個代表時間,一個代表水果。 而您顯示的度量是已售水果的數量。

在表2中,我會說您只有一個分類軸,即時間。 之后,您將獲得兩個測量值,並且行軸將為“((列名稱)”)。

度量將是蘋果數除以橙子數,以及橙子數除以西瓜數。 如果右鍵單擊度量軸並轉到自定義表達式,您將得到類似以下內容的信息:

Sum([Apples]) / Sum([Oranges]) as [Apples vs. Oranges], 
Sum([Oranges]) / Sum([Watermelons]) as [Oranges vs. Watermelons]

另外,轉到“屬性”->“格式化”,然后根據自己的喜好設置百分比格式。

在交叉表中轉置

從屏幕截圖中很難理解,所以我猜你的軸表達式是什么。 即使我猜錯了,無論初始狀態如何,都可以使用相同的方法。 您只需要將行軸與列軸交換即可。 您可以使用軸選擇器來執行此操作,也可以通過自定義表達式編輯器進行復制和粘貼。 如果從一開始就是這種配置,則: 原始交叉表配置

然后通過交換軸表達式,您將獲得: 轉置交叉表配置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM