如果對(duì)于關(guān)系及模型不太清楚的竹捉,這篇文章希望能夠讓你清清楚楚的了解库菲。理解了關(guān)系及模型或舞,那Power Pivot算真正的入門了舷蒲,之后就是函數(shù)的運(yùn)用了。
一吱雏、 關(guān)系的進(jìn)一步理解
(一) 關(guān)系模型
我們可以看下碧信,同樣的3張表垫挨,但是關(guān)系是卻不一樣锋拖,導(dǎo)致之后的操作也會(huì)不同诈悍。圖1和圖3是鏈?zhǔn)侥P停瑘D2是星型關(guān)系兽埃。圖1的鏈?zhǔn)绞菑淖?開(kāi)始侥钳,而圖3是從右1開(kāi)始。
另外下面這種模型就相對(duì)容易出錯(cuò)讲仰,在書寫度量值或者添加列的時(shí)候會(huì)比較難以理解慕趴,當(dāng)然并不是不能有這類模型關(guān)系,但不建議鄙陡,這類關(guān)系需要特別注意處理冕房。
(二) 關(guān)系函數(shù)
最基礎(chǔ)的2個(gè)關(guān)系函數(shù),也屬于篩選函數(shù)的一種趁矾,Related和RelatedTable耙册。
1. Related:從多端關(guān)聯(lián)到1端的對(duì)應(yīng)字段的值,并返回值毫捣。
2. RelatedTable:從1端關(guān)聯(lián)到多端的表详拙,并返回表。
(三) Related
1. 語(yǔ)法
RELATED(<ColumnName>)
參數(shù)描述
ColumnName包含所需值的列
2. 返回
值(標(biāo)量)——與當(dāng)前行相關(guān)的單個(gè)值蔓同。
3. 注意事項(xiàng)
只能從具有關(guān)聯(lián)的表中獲取值饶辙,無(wú)關(guān)聯(lián)則返回錯(cuò)誤。
只能用于計(jì)算列或組合行掃描函數(shù)(sumx等)斑粱。
4. 作用
類似Excel里面Vlookup中最后一位參數(shù)為0的絕對(duì)匹配
類似Index和Match組合函數(shù)的match的最后參數(shù)為0的絕對(duì)匹配
5. 案例
A. 圖1關(guān)系
如果要引用值弃揽,那我們需要在末端(多端)去引用。最末端是【老師】的表则北,因?yàn)槲覀兪且弥悼笪ⅲ俏覀兪褂煤瘮?shù)Related。
可以看到關(guān)聯(lián)引用出來(lái)包含了所有上端的表的字段名尚揣。例如我們可以直接引用其上端的2個(gè)表里面關(guān)聯(lián)的字段值涌矢。
如果我們?cè)诎嗉?jí)表里做Related引用的話,只能看到對(duì)應(yīng)其上端(1端)的表的內(nèi)容快骗。
B. 圖2關(guān)系
因?yàn)閳D2是星型模型娜庇,只有中間一個(gè)表示處于多端,其余2個(gè)表都是屬于1端方篮。所以如果要使用Related函數(shù)只能在中間表格 【班級(jí)副本】中使用思灌。
C. 圖3關(guān)系
圖3和圖1是反過(guò)來(lái)的,所以原理和圖1一樣恭取,只不過(guò)反過(guò)來(lái)操作泰偿。
(四) RelatedTable
1. 語(yǔ)法
RELATEDTABLE ( <Table> )
參數(shù)描述
Table包含所需值的表
2. 返回
表——包含單列或者多列的表
3. 注意事項(xiàng)
有關(guān)系的話,根據(jù)關(guān)系返回結(jié)果表蜈垮。
無(wú)關(guān)系的話耗跛,直接返回結(jié)果表。
4. 作用
是函數(shù)CalculateTable的快捷寫法攒发。
5. 案例
A. 圖1關(guān)系
如果要引用表调塌,那我們可以在初始端(1端)去引用。初始端是【成績(jī)】的表惠猿,因?yàn)槲覀兪且帽砀崂俏覀兪褂煤瘮?shù)RelatedTable。
這里為什么要在外面在寫上一個(gè)CountRows函數(shù)呢?那是因?yàn)樗性?b>添加列或度量值必須要求返回的是一個(gè)值(標(biāo)量)姜凄,CountRows是計(jì)算表格的行數(shù)政溃。
B. 圖2關(guān)系
如果要引用有關(guān)系的表,則會(huì)涉及到行上下文的計(jì)算态秧,如下圖
因?yàn)檫@2個(gè)表之間有關(guān)系董虱,是因?yàn)樾彰麑?duì)應(yīng)的關(guān)系,所以計(jì)算流程是這樣申鱼。每行都是先去根據(jù)當(dāng)前姓名值去對(duì)應(yīng)刪選后再進(jìn)行聚合函數(shù)(統(tǒng)計(jì)函數(shù))愤诱,并返回結(jié)果。
如果要引用的表是無(wú)關(guān)系的捐友,則會(huì)返回整個(gè)表淫半。如下圖
因?yàn)檫@2個(gè)表示沒(méi)有任何關(guān)系,所以返回的是整個(gè)表的計(jì)算結(jié)果匣砖。因?yàn)榘嗉?jí)這個(gè)表總行數(shù)為3撮慨,所以返回的每行數(shù)據(jù)都是3。
因?yàn)椴簧婕暗叫猩舷挛拇嘀啵栽诙攘恐道锩鏁鴮懸彩峭瑯臃祷剡@個(gè)值砌溺。
C. 圖3關(guān)系
我們可以看到,在我們輸入RelatedTable這個(gè)函數(shù)的時(shí)候变隔,會(huì)提示所有的表规伐,包括有關(guān)系和沒(méi)關(guān)系的,同時(shí)也會(huì)包含表本身(有關(guān)系)匣缘。因?yàn)檫@些表都是可以被計(jì)算猖闪,只不過(guò)計(jì)算返回結(jié)果不同。
(五) 透視表相關(guān)性
1. 鏈?zhǔn)侥P?/p>
A. 1端的字段拖放進(jìn)入數(shù)據(jù)透視表的列或行肌厨。
B. 多端的字段拖放進(jìn)數(shù)據(jù)透視表的值
2. 星型模型
A. 多端的表基本上都是事實(shí)表培慌,所以大部分的計(jì)算都是基于事實(shí)表。所以多端的數(shù)據(jù)作為數(shù)據(jù)透視表的值進(jìn)行計(jì)算柑爸。
B. 1端的表基本上都是維度表吵护,也遵循著1端的字段作為透視表的列或行。如果想計(jì)算1端表的值表鳍,可以通過(guò)函數(shù)Related把相關(guān)字段值引用到多段
(六) 篩選聯(lián)動(dòng)
度量值我們可以寫在任意的表里面馅而。但是寫在不同的表里,篩選結(jié)果是不一樣的譬圣。同時(shí)請(qǐng)注意瓮恭,這個(gè)多端和1端都是相對(duì)的。圖1班級(jí)表對(duì)應(yīng)成績(jī)表是多端厘熟,但是對(duì)應(yīng)老師表則是1端屯蹦。
1. 寫在多端维哈,計(jì)算1端
結(jié)果:不隨多端篩選而變化。
處理:把1端的值通過(guò)添加列到多端后登澜,再寫在多端阔挠。
2. 寫在1端,計(jì)算多端
結(jié)果:隨1端篩選而變化帖渠。
處理:只要計(jì)算的值是多端的,不管寫在哪里都可以竭宰。
3. 寫在1端空郊,計(jì)算1端
在使用維度表的時(shí)候,也必須使用1端的字段切揭。
4. 寫在多端狞甚,計(jì)算多端
這種結(jié)果是最好的,最沒(méi)有爭(zhēng)議的廓旬。
請(qǐng)點(diǎn)個(gè)贊哼审。