貌似有點脫了褲子放屁的感覺浇揩,這兩個命令字面意義上就已經說明了它們的應用場景——代碼復用台妆。字面意思好理解扶叉,但就我使用經驗而言,還是很長時間不知道兩者的差別荧缘,因為兩個命令都會生成一個基于前一個查詢的新查詢皆警,那么,具體使用時差別在什么地方截粗?
“復制查詢”類似于生孩子信姓,復制之后鸵隧,新查詢和老的查詢就沒有任何關系了——老查詢的變化不會反映到新查詢中;新查詢的變化更不會導致老查詢變化意推。
“引用查詢”中新老查詢的關系類似于PowerPoint中PPT頁面和PPT母版的關系——母版的變化會即時反映到PPT頁面豆瘫,也就是老查詢的變化會反映到新查詢中,但是新查詢的變化并不會引起老查詢發(fā)生改變左痢。
舉例:
我有一個人員數據表靡羡,數據非常亂,所以我要做各種操作:去掉不必要的空格俊性、提取出性別和年齡信息略步,將身份證號碼最后一個x變成大寫的X等等之類操作。然后我要按一定格式輸出一個有效用戶名單那和一個禁用名用戶名單定页。
實現這個目標有兩種思路:
一是建立一個有效用戶名單查詢趟薄,對原始數據進行各種操作并篩選出有效用戶后,復制一份該查詢典徊,重命名為禁用用戶名單查詢杭煎,在此基礎上重新編輯查詢,篩選出禁用用戶卒落。這樣羡铲,當原始數據發(fā)生變化,我需要在兩個查詢中對原始數據做一模一樣的操作儡毕。如果操作簡單也切,還好說,如果操作非常復雜腰湾,就相當耗時而且容易出錯了雷恃。
二是我建立三個查詢:原始數據查詢,對數據進行各種初始整理操作费坊;引用原始數據查詢生成一個有效用戶查詢倒槐,然后篩選出有效用戶;再引用原始數據查詢生成一個禁用用戶查詢附井,篩選出禁用用戶讨越。這樣,當原始數據發(fā)生任何變化永毅,我只需要修改一次原始數據谎痢,其修改結果都會同時反映到兩個查詢中,節(jié)省了大量時間卷雕。
【題外話:最新的PowerQuery有兩個“復制”命令(見下圖),點擊最頂端那個“復制”命令票从,不會發(fā)生任何事情漫雕;點擊中間“引用”上面那個“復制”則會生成一個新的查詢滨嘱。本帖討論的是后面這一個“復制”命令。最頂端那個“復制”命令是專用于和Power BI Desktop共享PowerQuery代碼的——復制之后到Power BI Desktop粘貼浸间,即將Excel中的PowerQuery代碼復制到了Power BI Desktop中太雨,反之亦然】猓】