power bi公式運用

2021-10-04 20:00:14 字數 3719 閱讀 5589

從原有的表中提取資料,生成新的**

從銷售資料彙總表中提取日期成本,生產新的銷售成本表,

其中"成本"相當於在新錶中的名稱

沿用舊表表頭:

銷售成本表 = summarize(

'銷售資料彙總'

,'銷售資料彙總'

[日期]

,"成本"

,sum(

'銷售資料彙總'

[成本]

))

自己生成新的表頭:

銷售成本表 = summarize(

'銷售資料彙總'

,'銷售資料彙總'

[日期]

,"銷售成本"

,sum(

'銷售資料彙總'

[成本]

))

從銷售成本表中的日期中提取月份,生成新的列

月 = month(

'銷售成本表'

[日期]

)

從銷售成本表中的日期提取星期,生成新的列

星期 = weekday(

'銷售成本表'

[日期]

將銷售成本表中月份和星期放在同一列,生成新的列

月份&星期 = '銷售成本表'

[月]&'銷售成本表'

[星期]

根據銷售成本表生成新的列,為x月星期x平均銷售成本

x月星期x平均銷售成本 = divide(sumx(

filter

('銷售成本表'

,earlier(

'銷售成本表'

[月份&星期]

)='銷售成本表'

[月份&星期]),

'銷售成本表'

[銷售成本]

),countax(

filter

('銷售成本表'

,earlier(

'銷售成本表'

[月份&星期]

)='銷售成本表'

[月份&星期]),

'銷售成本表'

[星期]

))

對上面函式進行解析:sum()在單個列上執行,並且不知道列中的各個行(沒有逐行求值)。

示例:

總銷售額= sum(銷售表[銷售額])
sumx()可以對錶中的多個列進行操作,並且可以在這些列中完成逐行求值。

示例:

總銷售額sumx = sumx(銷售表,銷售表[數量]

*銷售表[單位**])

divide可以求平均

示例:

x月星期x平均銷售成本 = divide(x月星期x的總成本/x月星期x的總個數)
filter(table,) --返回值:只包含篩選行資料的表

–篩選時對錶進行逐行掃瞄,計算量很大,所以選擇篩選的表盡量為lookup表

earlier函式:

例如我們有「產品名稱」和「銷售金額」兩列資料。基於此,我們希望計算出每個產品的銷售金額排名。

countrows(

filter

('產品銷售表'

, earlier(

'產品銷售表'

[銷售金額]

)[銷售金額]))

+1

earlier=當前行,按照當前行進行逐行掃瞄,sumx+filter+earlier

是power pivot中比較常用的函式組合,由於earlier針對每一行資料都進行計算,

所以理論上計算量相當於資料行數的平方。如果有10行資料,則需要計算100次,所以資料量大的時候大家使用要小心,有可能會造成模型計算緩慢。

countax函式統計非空值(blank),包含數值,date,邏輯值或文字值。

如果countax函式沒有資料列做計數,返回blank;如果countax函式聚合的資料列都是blank,返回0。

x月星期x的係數 :

x月星期x的係數 = divide(

'銷售成本表'

[x月星期x平均銷售成本]

,minx(

filter

('銷售成本表'

,earlier(

'銷售成本表'

[月])='銷售成本表'

[月])

,'銷售成本表'

[x月星期x平均銷售成本]

))

x月星期x的係數 =x月星期x平均銷售成本/minx(x月星期x平均銷售成本)

注:同乙個月中星期幾的銷售額最小就以其為基數

去年同期業績:

去年同期業績 = calculate(

'銷售明細'

[銷售業績]

,dateadd(

'銷售明細'

[銷售日期]

,-1,year)

)

calculate用法:

calculate(表示式,篩選器)

同比:今年業績-去年業績/去年業績

同比 = divide(

'銷售明細'

[銷售業績]

-'銷售明細'

[去年同期業績]

,'銷售明細'

[去年同期業績]

)

環比:本月業績-上月業績/本月業績

上月業績 = calculate(

'銷售明細'

[銷售業績]

,dateadd(

'銷售明細'

[銷售日期]

,-1,month)

)環比 = divide(

'銷售明細'

[銷售業績]

-'銷售明細'

[上月業績]

,'銷售明細'

[上月業績]

)

totalytd:用於返回年初至今業績_ytd:

業績_ytd = totalytd(

'銷售明細'

[銷售業績]

,'銷售明細'

[銷售日期]

)

去年同期業績_ytd:

去年同期業績_ytd = totalytd(

'銷售明細'

[銷售業績]

,dateadd(

'銷售明細'

[銷售日期]

,-1,year)

)

同比_ytd:

同比_ytd = divide(

'銷售明細'

[業績_ytd]

-'銷售明細'

[去年同期_ytd]

,'銷售明細'

[去年同期_ytd]

)

Power BI 視覺參考

如何在所有資源中為報表或儀表板選擇正確的視覺效果?sqlbi 團隊建立了乙個清晰的參考,列出了幾乎所有我們今天可用的視覺化,按其使用情況分類。對於其中列出的一些視覺化效果,指出了哪些適用於儀表板哪些不鼓勵使用它們。確定的類別是 comparison 對比 changeover time 趨勢 par...

Power BI使用技巧

一 篩選器相關 1 篩選器的可選擇範圍不正確 在power bi中,維度表和事實表之間的資料建模非常重要,我們在進行關係的建立的時候,pbi desktop會根據我們的資料情況自動選擇兩個表之間的基數和交叉篩選方向,在大多時候,其自動選擇的也正是我們需要的,但有時候,可能會不符合我們的需求,今天我在...

Power BI 學習筆記02

4 建立資料分析模型 4.1 建立資料模型 10節 edit relationship cross filter direction 跨篩選器方向 交叉篩選器方向 該項有兩個選擇 single or both。選 both 的話,原表關係 一對多 中兩個表的相應欄位都可以做篩選項,如果選 singl...