最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Power BI之DAX神功:第3卷第9回 切片器實現(xiàn)或(or)條件與反向篩選

2021-12-04 13:28 作者:孫興華zz  | 我要投稿

很多網(wǎng)友反饋,《The Definitive Guide to DAX》與各大平臺關(guān)于此知識點的文章中的代碼在實際測試中遇到了問題。我們都用倚天劍,他們用峨眉劍法,我用太極劍法,兵器相同,武功招式不同。書中寫了OR1、OR2、OR3但是都沒往矩陣上,你可以按它的方法放到矩陣上看看,測試能否成功。(我沒測過,我不清楚,以你實際測試結(jié)果為準)

我今天要講的內(nèi)容,只需要你知道,切片器的字段來自哪張表:)問題就全解決了

我們直奔主題,講我的方法:

表名:Sheet1

PS:我用一張表舉例,您多張表也沒有問題。但是多張表時,你表與表之間要符合1對多關(guān)系

切片器默認情況下使用的and關(guān)系,例如:篩選一班男生,結(jié)果是:一班 and 男生

如果我們想實現(xiàn)OR關(guān)系,例如:一班同學(xué) or?所有男生

如果我想篩選? 一班 or 男生? 怎么處理?

方法一:99.99%情況下都用這種方法,缺點:當(dāng)切片器內(nèi)容較多時,速度會下降。

// 你能把切片器搞出100個選項來,你也是人才了。我只是幼兒園畢業(yè),我在匯報時,從20個選項中選擇1個都要找?guī)酌耄?00選1或100選N,我會崩潰的。但是100個切片器選項并不會影響太多速度,要影響速度至少要數(shù)千甚至上萬個選項。那是婆婆了,萬里挑一:)

【度量值】總分 = sum(Sheet1[分數(shù)])

【新建表】性別 = VALUES(Sheet1[性別])

【新建表】班級 = VALUES(Sheet1[班級])?

注意:新建表不要與原始表之間發(fā)生關(guān)系,新建表就是切片器選項

度量值:

原理:

?'Sheet1'[班級] in VALUES('班級'[班級])? 等同于??'Sheet1'[班級] in {"一班","三班"}

而?{"一班","三班"}就相當(dāng)于我們在切片器上的選擇。

即可實現(xiàn)切片器or關(guān)系:

其中不必新建兩張表,一張表就可以搞定:

【新建表】笛卡兒積表 = CROSSJOIN(ALL(Sheet1[性別]),ALL(Sheet1[班級]))

兩張表不建立連線關(guān)系:

很多小伙伴有這樣一個需求,當(dāng)只選擇性別切片器時,例如選擇男,就篩選所有男生,如下圖所示:

如果只篩選班級,例如選擇一班,就只篩選一班人員,如下圖所示:

當(dāng)我兩個切片器都使用時,讓切片器之間實現(xiàn)OR關(guān)系。

原理:

<1>當(dāng)?shù)芽▋悍e表性別列被篩選,但是笛卡兒積表班級列未被篩選時,返回性別篩選的結(jié)果。

<2>當(dāng)?shù)芽▋悍e表班級列被篩選,但是笛卡兒積表性別列未被篩選時,返回班級篩選的結(jié)果。

<3>否則,返回度量值or1改

方法二:SUMMARIZE代替CROSSJOIN。

友情提示:速度是虛無縹緲的事情,信則有,不信則無。與其追求優(yōu)化不如升級電腦,升級電腦也無效時,不如換軟件。100萬行的Excel用M函數(shù)或DAX函數(shù)優(yōu)化的再好都會很慢,用SQL或Pandas等處理就是幾秒的事情。

我們打游戲時,你用木棍打喪尸,你走位再好,也不如有重裝備打起來爽,你裝備再好,也不如開著飛機扔炸彈來得爽。

【新建表】summzrize表 = SUMMARIZE('Sheet1',Sheet1[性別],'Sheet1'[班級])

//?SUMMARIZECOLUMNS也可以

兩張表之間沒有連線關(guān)系:

我們這次直接照著OR1升級版的度量值寫:

最后一個問題:切片器反向篩選

有很多網(wǎng)友發(fā)消息問我,網(wǎng)上看的文章,好多贊,而且各大平臺都有,發(fā)文章的人也是PowerBI界的泰山北斗,但是自己照著抄就是不對。因為他提供的代碼就不對,并不是能力問題,人家肯定會,我是以免費傳播知識為目的,而對方是以你關(guān)注他某某號為目的。你測試不成功,就會關(guān)注他某某號,某某號會定期有廣告,這條路線就這樣形成了。

《DAX神功》第3卷第8回 Except函數(shù)要求兩張表具有相同列,且順序相同,數(shù)據(jù)類型相同。你觀察代碼符合這個語法規(guī)則不?接下來我講一下能運行的代碼:

【新建表】班級?= VALUES(Sheet1[班級])

兩張表之間沒有連線關(guān)系:

// 如果班級表中的班級列被篩選,我們就返回Sheet1表班級列去重后的全部元素除去在切片器上選擇的班級后篩選的【總分】。否則返回【總分】。

現(xiàn)在我篩選一班時,會自動篩選出除了一班以外的班級:

孫興華講PowerBI火力全開》PowerBI必學(xué)課程

https://www.bilibili.com/video/BV1qa4y1H7wp

《DAX神功》文字版合集:

https://www.bilibili.com/read/readlist/rl442274

《DAX神功》視頻版合集:

https://www.bilibili.com/video/BV1YE411E7p3

PowerBI(DAX函數(shù))、PowerQuery(M函數(shù))、Python辦公自動化、Python爬蟲、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等

https://www.bilibili.com/read/cv10222110

Power BI之DAX神功:第3卷第9回 切片器實現(xiàn)或(or)條件與反向篩選的評論 (共 條)

分享到微博請遵守國家法律
年辖:市辖区| 太保市| 河西区| 司法| 惠水县| 瓦房店市| 长丰县| 南溪县| 蓬安县| 山丹县| 德惠市| 小金县| 绵竹市| 华宁县| 景宁| 大兴区| 西林县| 新平| 大厂| 正镶白旗| 搜索| 大连市| 孟津县| 嘉义县| 常熟市| 板桥市| 大新县| 甘肃省| 连江县| 阳新县| 文登市| 通渭县| 五家渠市| 商丘市| 北川| 阿拉善右旗| 揭西县| 清苑县| 南木林县| 佳木斯市| 馆陶县|