(一) 仔細(xì)檢查公式欄
不同的公式空運(yùn)達(dá)到同樣的效果饵撑,所以觀察產(chǎn)生結(jié)果的公式就很重要,別把公式欄給隱藏了,需要打開它诽表,如圖1所示。
例如:
刪除列和刪除其他列可能得到的效果是一樣的隅肥,但是如果數(shù)據(jù)有變動(dòng)刷新后得到的結(jié)果卻有可能不同竿奏。
Table.RemoveColumns(源,{"成績(jī)", "學(xué)科"})
Table.SelectColumns(刪除的列,{"姓名"})
(二) 刪除不必要更改的類型
很多時(shí)候錯(cuò)誤的原因在于改變數(shù)據(jù)類型的時(shí)候出錯(cuò),尤其是在提升標(biāo)題等動(dòng)作后會(huì)自動(dòng)生成腥放,如圖2所示泛啸。在Power Query中對(duì)于數(shù)據(jù)的類型要求比較嚴(yán)格,如果在中間步驟不是計(jì)算必要的數(shù)據(jù)類型秃症,可以暫時(shí)不更改候址,而等到最后的時(shí)候在進(jìn)行數(shù)據(jù)類型的更改,這樣也能夠更方便的發(fā)現(xiàn)問題的所在种柑。
(三) 使用動(dòng)態(tài)參數(shù)而不是固定參數(shù)
如果數(shù)據(jù)不是固定格式岗仑,會(huì)有變動(dòng),那使用固定參數(shù)就非常有可能會(huì)在刷新數(shù)據(jù)的時(shí)候進(jìn)行報(bào)錯(cuò)聚请,這時(shí)就可以使用動(dòng)態(tài)參數(shù)來進(jìn)行荠雕。
例如:
表格中的標(biāo)題列名稱可能會(huì)進(jìn)行變化,但是位置不會(huì)變驶赏,那此時(shí)就可以使用變量參數(shù)來進(jìn)行炸卑,而不是直接使用列名稱來進(jìn)行操作,如圖3所示煤傍,此時(shí)不管第2列的標(biāo)題改為什么盖文,只要第2列是代表數(shù)字的,這樣使用動(dòng)態(tài)參數(shù)都不會(huì)產(chǎn)生錯(cuò)誤蚯姆。
(四) 篩選的技巧
一般來說篩選很簡(jiǎn)單五续,只需要在界面進(jìn)行操作即可,但是有時(shí)候需要注意的是蒋失,計(jì)算機(jī)識(shí)別出的操作和人的操作思想不一樣返帕,
1. 邏輯不一樣
同樣的篩選結(jié)果,如果只希望選擇大于90份的結(jié)果篙挽,直接選擇和邏輯選擇會(huì)不同荆萤。
2. 不完整的數(shù)據(jù)中篩選
如果數(shù)據(jù)量很大,就會(huì)有可能產(chǎn)生未全部加載完成的數(shù)據(jù),因?yàn)檫@里直接篩選的數(shù)據(jù)依據(jù)的只是前1000行链韭,有可能展現(xiàn)出來的篩選數(shù)據(jù)并不完整偏竟。
(五) 移動(dòng)列的差異
一般情況下,移動(dòng)列的順序使用的是Table.ReorderColumns函數(shù)敞峭,也就是重新把列名給排下序踊谋,如圖7所示。
在此函數(shù)中旋讹,使用的列排序都是常量殖蚕,而不是變量,如果只想讓成績(jī)這個(gè)字段根據(jù)所需要的位置進(jìn)行插入沉迹,用變量的方式最好睦疫,只需要在列的名稱上進(jìn)行改變。
例如:
要把成績(jī)放到最后一列鞭呕,甚至都不清楚列的數(shù)量及列的名稱的情況下來實(shí)現(xiàn)操作蛤育。
(六) 刪除數(shù)據(jù)列
刪除列以及選擇列都是屬于刪除數(shù)據(jù)的一種操作。這個(gè)時(shí)候可以利用此類操作函數(shù)的第3個(gè)參數(shù)來避免產(chǎn)生錯(cuò)誤葫松。
正常的刪除是沒有問題的瓦糕,如圖9所示。
如果常量參數(shù)填寫錯(cuò)誤腋么,則就會(huì)出錯(cuò)咕娄,如圖10所示。
此時(shí)可以使用此函數(shù)的第3參數(shù)來規(guī)避錯(cuò)誤党晋,3個(gè)參數(shù)分別可以用0,1,2代表谭胚,如圖11所示。
這樣就能避免產(chǎn)生錯(cuò)誤未玻,可以使得操作繼續(xù)進(jìn)行灾而,如圖12所示。
(七) 拆分?jǐn)?shù)據(jù)列
在進(jìn)行列的拆分時(shí)扳剿,大部分會(huì)使用類似Excel中的分割功能旁趟,把數(shù)據(jù)分割成多個(gè)列,但是其中會(huì)有一個(gè)問題就是如果后續(xù)更新的數(shù)據(jù)需要拆分的列數(shù)量不一致就有可能會(huì)漏拆分庇绽,如圖13所示拆分成如圖14所示锡搜。
你當(dāng)然可以這樣拆分,但是有一個(gè)問題瞧掺,仔細(xì)查看公式(避免錯(cuò)誤的第一個(gè)方法)耕餐,其中的列名都是自動(dòng)生成的,是根據(jù)現(xiàn)有數(shù)據(jù)能拆分成幾行就寫了幾個(gè)對(duì)應(yīng)的字段名和格式辟狈。但是如果下次的數(shù)據(jù)比本次所拆分的更多肠缔,那在刷新時(shí)就無法進(jìn)行同步更新夏跷,就會(huì)出錯(cuò)。
此時(shí)最好的做法就是把數(shù)據(jù)拆分成行明未,這樣就能避免固定的列的限制槽华,如圖15這樣的操作。
(八) 合并數(shù)據(jù)列
在合并數(shù)據(jù)列的時(shí)候也需要注意一點(diǎn)趟妥,組合的列必須是文本列猫态,如果是其他格式會(huì)自動(dòng)轉(zhuǎn)換成文本格式,如圖16所示披摄,如果合并的只是文本亲雪,會(huì)直接合并。如果是其他格式的話行疏,則會(huì)自動(dòng)進(jìn)行格式的轉(zhuǎn)換匆光,先轉(zhuǎn)換成文本格式在進(jìn)行合并,如圖17所示酿联。
如果仔細(xì)觀察,在合并非文本列的時(shí)候夺巩,操作都是一樣的贞让,但是在公式中會(huì)對(duì)原有的表格中需要合并的列進(jìn)行格式轉(zhuǎn)換,所以要合并的列不管是不是文本格式柳譬,都可以預(yù)先給轉(zhuǎn)換成文本格式喳张,這樣在后續(xù)的合并中就不會(huì)出錯(cuò)。
(九) 合并查詢中的展開表
合并查詢?cè)赑ower Query中使用的比例還是相對(duì)挺高的美澳,在使用后都會(huì)把匹配的數(shù)據(jù)給展開销部,這里就會(huì)涉及到一個(gè)注意事項(xiàng),如圖18所示制跟,合并查詢展開時(shí)的公式舅桩,
這里同樣有一個(gè)問題,就是所有的參數(shù)都使用了常量參數(shù)雨膨,這樣就會(huì)導(dǎo)致之后如果數(shù)據(jù)有變動(dòng)則會(huì)產(chǎn)生錯(cuò)誤擂涛,盡量的使用可替代的來實(shí)現(xiàn)其相同的邏輯。
主要是第3參數(shù)聊记,同樣可以使用List.RemoveItems或者List.Difference來實(shí)現(xiàn)去掉匹配列來展開所有的其他列撒妈。
(十) 刪除重復(fù)項(xiàng)
在創(chuàng)建維度表的時(shí)候,會(huì)常用的操作就是去除重復(fù)項(xiàng)排监,要不然在Power BI中會(huì)產(chǎn)生多對(duì)多的關(guān)系狰右,就會(huì)引起錯(cuò)誤,不過在去除重復(fù)項(xiàng)的時(shí)候也需要進(jìn)行仔細(xì)辨別舆床。
1. 字母的大小寫
在Power BI的模型關(guān)系中棋蚌,不會(huì)區(qū)分大小寫,如果只是大小寫的區(qū)分,則會(huì)直接判斷為多個(gè)關(guān)系附鸽,所以在Power Query中進(jìn)行清洗的時(shí)候就要特別留意脱拼,以避免因?yàn)榇笮懏a(chǎn)生的錯(cuò)誤導(dǎo)致數(shù)據(jù)表之間的關(guān)系錯(cuò)誤。
2. 不可見的符號(hào)
此外就是不可見的符號(hào)了坷备,這種也會(huì)經(jīng)常導(dǎo)致匹配錯(cuò)誤或者刪除重復(fù)項(xiàng)時(shí)未完全成功熄浓,所以在執(zhí)行刪除重復(fù)項(xiàng)之前使用修整和清除來把數(shù)據(jù)給清洗下。