webi報表中的上下文

2021-05-23 20:38:37 字數 1251 閱讀 7958

webi報表中通常使用in,foreach,forall來計算上下文,不過理解這些公式最好還是通過例子,而不是看文件。我就把這些公式通過例子好好的給大家講解一下。以下的例子我就以island resorts marketing這個universe為例。

1. in operator

in是非常好理解的乙個公式它指明了計算公式的上下文包含哪些,什麼意思了?比如下圖:

如果我新增一列,想要得到country中每年的彙總金額,那該怎麼做了?這就要用到in了,通過如下公式即可解決:

=sum([revenue] in ([country];[quarter];[year])) in ([year];[country])

這個如果用到了forall會更簡單,不過為了演示in的作用,先這麼寫了。下面將有更好的方式。這段公式的含義是對(country,quarter,year)這三個維度下按照year,country的分類進行求和。你可以測試下,比如換成如下這樣:

=sum([revenue] in ([country];[quarter];[year])) in ([year])

就會發現現在是按照year維度進行的分類彙總。即每年有乙個彙總值,而不是按照country何quater了。

2. foreach

還是上面這張表,如果我只是想實現一下每個季度下最大的那個revenue是多少怎麼辦了?如下圖:

右邊是quarter,左邊這列式每個季度下最大的金額。公式如下:

=max([revenue] foreach ([country]))

猜到foreach的作用了嗎?本來次table預設的上下文維度是quarter,但是通過foreach可以增加乙個維度country,這樣我們實際的效果是

=max([revenue] in ([country];[quarter])) in ([country])

這就是foreach。

3. forall

forall和foreach相對,foreach是增加維度到上下文中,而forall是在預設的上下文中減去乙個維度。回到1中的那個問題,如何用forall來解決了?先想想,對了就是這樣:

=sum([revenue] forall ([quarter]))

本來預設的上下文是country,quarter,year,只需要刪除quarter這個維度即可。現在應該對webi中的上下文了解了吧。so easy。excel可沒有這樣的功能。

上下文 上下文棧

全域性 函式 區域性 在執行全域性 前將window確定為全域性執行上下文 對全域性資料進行預處理 var定義的全域性變數 undefined,新增為window的屬性 function宣告的全域性函式 賦值 fun 新增為window的方法 this 賦值 window 開始執行全域性 在呼叫函式...

中斷上下文 程序上下文

在學習與作業系統相關的知識時候,我們經常遇到程序上下文 中斷上下文,看似熟悉又感覺不是特別清晰。這裡我們從如下幾個方面進行描述。上下文是從英文中context翻譯過來的,指的是一種環境。上下文我們看起來不怎麼熟悉,但是我們可以看context的中文翻譯,或者我們能更加的情形些。context n 語...

全域性上下文與上下文

全域性上下文由main函式載入系統的主架構和主事件迴圈和全域性資料構成。是上帝創造世界時,建立的基礎事物。萬物之始,大道至簡,衍化至繁。全域性上下文代表著程式執行所需要的基礎資源。是程式執行的基礎。全域性上下文的特徵是在程式執行期間常駐記憶體。全域性上下文的生命週期和應用程式的生命週期相同。與應用程...