在power bi中,表是由行和列構成的,我們的上下文也分為兩種:
篩選上下文和行上下文
我們之前接觸的都是:篩選上下文
提到「篩選條件」就是篩選上下文
什麼是行上下文:
例如:新建列,公式=[銷售數量]+10
當前所在行,將每一行的銷售數量都加上10
我們把每節課都用到的度量值放在商品表中新建列試試:
銷售總量= sum(『銷售明細表』[銷量數量] )
行上下文是商品表中的當前行,而銷售總量是銷售明細表中的銷售數量那一列的總計。它是兩張表。總結:商品表的行上下文不影響銷售明細表輸出的銷售數量合計的結果,所以這一列都是乙個數字。回到模型中看一下商品表和銷售明細表的關係是一對多。那為什麼沒有算出每個商品應有的銷售數量呢?我們建立模型了?
行上下文本身沒有篩選功能,要達到篩選這個目的,必需借助我們的引擎:calculate函式
計算銷售明細表中數量的總和,它的行上下文是當前所在行
所以:行上下文不會自動轉換成篩選上下文。
借助我們的引擎:calculate函式
新銷售總量=calculate(sum(『銷售明細表』[銷量數量]))
例子:需求:每一天果汁銷售量大於100杯的門店
銷售c = calculate([銷售數量],filter(『店名表』,[銷售數量]>100 ))
初始篩選條件:每一天,門店
不能是銷售c = calculate([銷售數量],filter(『店名表『,sum(『銷售明細表』 [銷售數量])>100 ))
原因
filter函式是行上下文函式:
行上下文不會自動轉換成篩選上下文,所以公式sum(『銷售明細表』 [銷售數量])>100 並沒有受到行上下文的影響,它計算的是銷售數量那一列的數量合計。
度量值都自帶calculate函式的功能!
銷售總量= sum(『銷售明細表』[銷量數量] )
[總金額]、[總毛利額]等
等同於calculate(sum(『銷售明細表』[銷量數量] ))
1.行上下文不會自動轉換篩選上下文,要轉換,必需套乙個calculate引擎。
2.度量值天生就是calculate函式。
程序上下文與中斷上下文的理解
一.什麼是核心態和使用者態 使用者態 使用者程式執行空間。1.程序上下文 1 程序上文 其是指程序由使用者態切換到核心態是需要儲存使用者態時cpu暫存器中的值,程序狀態以及堆疊上的內容,即儲存當前程序的程序上下文,以便再次執行該程序時,能夠恢復切換時的狀態,繼續執行。2 程序下文 其是指切換到核心態...
程序上下文與中斷上下文的理解
使用者態 使用者程式執行空間。1.程序上下文 1 程序上文 其是指程序由使用者態切換到核心態是需要儲存使用者態時cpu暫存器中的值,程序狀態以及堆疊上的內容,即儲存當前程序的程序上下文,以便再次執行該程序時,能夠恢復切換時的狀態,繼續執行。2 程序下文 其是指切換到核心態後執行的程式,即程序執行在核...
程序上下文與中斷上下文的理解
使用者態 使用者程式執行空間。1.程序上下文 1 程序上文 其是指程序由使用者態切換到核心態是需要儲存使用者態時cpu暫存器中的值,程序狀態以及堆疊上的內容,即儲存當前程序的程序上下文,以便再次執行該程序時,能夠恢復切換時的狀態,繼續執行。2 程序下文 其是指切換到核心態後執行的程式,即程序執行在核...