[英]Spotfire - Dividing one row value with another in a cross table
由於您的數據采用高皮包骨頭的格式,因此我的原始答案無效。 我將答案保留在其中,以防它對其他人有所幫助,請參閱下文。
通過更新,您似乎已經設法用所需的數據創建了一個交叉表。 如果可以在行軸,列軸和度量軸上顯示精確的軸表達式將很有幫助,但我可以嘗試說明如何根據需要在交叉表中轉置數據。 有關說明,請參見最后一節。
如果采用高大的緊身格式,則在進行顯式比較時將無法使用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.