⑴ power query插件應用案例(二)
對於數據分析,工作簿或工作表合並是我們經常遇到的問題,但不同的數據結構往往有不同的應對方式。合適的處理方式,也唯有如此,才能帶來理想效果。例如下圖中,要將數十個分公司的數據匯總到同一張表內,再利用Power BI建立可視化動態圖表。僅單純地手工復嘩帆制粘貼不僅顯得效率低下,還容易造成數據缺失,但藉助power query插件則能輕易取得數十份工作簿的所有數據,並且還可實現數據的自動更新。
Step1:打開匯總工作表,點開Power query選項卡,選擇數據來源,[從文件]→[從文件夾],將保存數據的文件夾直接導入power query查詢編輯器。
Step2:在[選擇數據源]內找到該文件夾,單擊「編輯」按鈕,進入「查詢編輯器」,其操作界面如下圖所示:
Step3:點擊「開始」選項卡,選中「content」列,在「刪除列」中將其他所有列刪掉,僅保留該列。
Step4:點開「添加列」選項卡,選擇「自定義列」,在彈出的「添加自定義列」對話框內新建新列名稱及自定義列公式:[=Excel.Workbook([content],true)]。其中,函數Excel.Workbook每個單詞首字母必須大寫,答蘆梁參數[content]是雙擊或插入「可用列」來完成的。最終效果可見下圖。
Step5:點擊「清單」列的擴展按鈕,不勾選「使用原始列名作為前綴」,再點擊「清運確定」。
Step6:繼續選中「Data」列,通過「刪除其他列」將多餘的列去掉,再次點擊該列右上角的擴展按鈕,將數據完全擴展開來。此時,將得到文件夾內所有工作簿匯總的數據。最後,在「開始」選項卡內點擊「關閉並上載至」將數據添加到數據模型內,通過powerpivot插件做進一步地處理。
⑵ Power Query載入鏈接並刷新的疑惑
最近在學習Power Query,遇到一個應該是很簡單,但我不知道到底問題是出在哪裡的問題;具體翻車現場回顧:
是這樣,我有一個工作表(查詢表1),如下:
現在在另外一個工作簿中,有另一個我御枝需鎮裂敏要查詢引用的表(查詢表2),如下:
我想從查詢表裡面把查詢表2裡面的金額引用過來,但是我想只引用鏈接就行,不想將表載入過來,具體我是這么操作的:
1、選擇查詢表1的數據菜單,選擇自表格/區域,建立查詢:
之後,關閉並上載到工作表。
2、再新建一個查詢,將查詢2引入查詢表1,並選擇僅創建連接:
目前有兩個查詢,查詢表1和查詢表2,並且查詢表2僅限鏈接:
3、合並查詢:
打開查詢表1,進入Power query,選擇合並查詢:
合並兩個工作表:
合並後如下:
展開查詢表2:
查詢完成,選擇關閉並上載。返回工作表,結果如下:
修改/增加查詢表2中的數據,返回到查詢表1裡面,進行刷新,問題來了:
無法刷新。。。。。
然後我試著把查詢表載入到當前工作簿:
再刷新就沒有問題了。。源世。。
但是這並不是我想要的結果,我就想只要鏈接,我不想載入很多表到現在這個工作表裡面啊,希望看到的老師給我一個解答,康桑思密達~
謝謝qq群里的各位大神,問題已解決,下面是錄制視頻:
但鏈接確實還是不能刷新,可能我操作上還有問題,看到的大神麻煩告知,🙏
⑶ 2013excelpowerquery怎麼上載至數據透視表
需要使用excel的powerquery插件,可扒耐以頌滑通過以下步驟來完成。
1、在Excel中點擊文件,然後點擊選項。
2、在選項對話框中點擊高級,然後在保存選項卡中勾選在打開工作簿時啟動PowerQuery。
3、然後打開你的數據文件,可以通過數據標簽中的新建查詢來打開PowerQuery窗口。
4、在PowerQuery窗口中選擇需要上載到數據透視表的數據,然後點擊關野此臘閉並應用。
5、最後,在數據標簽中可以看到數據透視表選項,點擊即可創建一個新的數據透視表,將PowerQuery上傳的數據載入入該表中。
⑷ powerquery上載數據失敗
powerquery上載數據失敗是網路卡頓的原因,建議重啟網路。
網路是由若干節點和連接這些節點的鏈路構成,表示諸多對象及其相互聯系。
在1999年之前,人們一般認為網路的結構都是隨機的。但隨著Barabasi和Watts在1999年分別發現了網路的無標度和小世界特性並分別在世界著名的《科學》和《自然》雜志上發表了他們的發現之後,人們才認識到網路的復雜性。
網路會藉助文字閱讀、圖片查看、影音播放、下載傳輸跡啟、游戲、聊天等軟體工具從文字、圖片、聲音、視頻等方面給人們帶來極其豐富的生活和美好的享受。
漢語中,「網路」一詞最早用於電學《現代漢語詞典》(1993年版)做出這樣的解釋:「在電的系統中,由若干元件組成的用來使電信號按一定要求傳輸的電路或這種電腔州唯路的部分,叫網路。」
在數學上,網路是一種圖,一般認為專指加權圖。網路除了數學定義外,還有具體的物理含義,即網路是從某種相同類型的實際問題中抽象出來的模型。在計算機領域中,網路是伍培信息傳輸、接收、共享的虛擬平台,通過它把各個點、面、體的信息聯繫到一起,從而實現這些資源的共享。網路是人類發展史來最重要的發明,提高了科技和人類社會的發展。
⑸ 如何在Power Query中提取數據——記錄篇
表名為數據,第一步驟名稱為源
(一)提取欄位數:
Record.FieldCount (record as record ) as 搭卜 number
返回的是一個數字格式。
例:
直接使用:
Record.FieldCount([姓名="張三",成績=100,學科="數學"])=3
在本詢中使用:
Record.FieldCount(源{0})=3
在其他查詢中使用:
Record.FieldCount(數據{0})=3
(二)提取欄位名稱列表
Record.FieldNames (record as record ) as list
返回的是欄位名列表,如果返回的是list,請注意函數結尾正常來說會是復數,帶s。
例:
直接使用
Record.FieldNames([姓名="張三",成績=100,學科="數學"])={姓名","成績","學科做虧"}
在本查詢中使用
Record.FieldNames(源{0})={姓名","成績","學科"}
在其他查詢中使用
Record.FieldNames(數據{0})={姓名","成績","學科"}
(三)提取記錄值列表
Record.FieldValues (record as record ) as list
返回的是記錄的值列表
例:
直接使用:
Record.FieldValues ([姓名="張三",成績=100,學科="數學"])={"張三",100,"數學"}
在本查詢中使用
Record.FieldValues (源{0})={"張三純枝神",100, "數學"}
在其他查詢中使用
Record.FieldValues (數據{0})={"張三",100, "數學"}
⑹ Excel Power Query:如何打開未載入的查詢
——續上篇( Excel Power Query:工作簿數據的導入與整合 )——
首先,我們需要打開上篇創建的查詢。由於該查詢沒有進行載入,而是僅創建了連接,所以較為隱蔽,不熟悉的人根本都不知道工作簿中創建了查詢。具體操作如下:
打開未載入查詢的納顫方法1: 打開上篇保存的Excel文件《Excel建模分析》,依次點擊:數據-獲取數據-啟動Power Query編輯器,如下圖。進入Power Query編輯器後,點擊左邊導航窗格中的查詢即可悶喚。
打開未載入查詢的方法2: 依次點擊數據-查詢和連接,在右邊出現的「查詢&連接」窗格中,雙擊我們上篇所創建的查詢「車縫生產過程記錄」,即可打開。
這樣,我們上次創建的查詢「車縫生產過程記錄」就打開了。在查詢編輯器右邊的「查詢設置」窗格中,可以看到創建查詢的每一個步驟。需要時,可以對這些步驟進行修改。
查詢重命名: 我們也可以對查詢進行重命名。可以在右邊「查詢設置」名稱下洞罩敗方的方框中修改,也可以直接雙擊左邊查詢導航窗格中的查詢名稱修改,還可以在左邊查詢導航窗格中的查詢名稱處點擊滑鼠右鍵並選擇「重命名」來修改。我們將查詢名稱改為「Worksheet篩選」,如下圖所示。
注意:如果查詢已經添加到數據模型,則盡量不要再修改查詢名稱,否則數據模型會無法識別重命名後的查詢,需要重新載入重命名後的查詢,並需要對數據模型及其度量值重新進行設置。
下面又到要關閉Power Query編輯器的時候了。由於之前已經對查詢的上載進行過設置,如果這次的設置跟上次一樣,則只需要直接點擊開始-關閉並上載即可。
未完待續……
⑺ excel如何從指定網站自動獲取數據,並實時更新
powerquery可以,我看到有人用vba也實現了。
就我自己使用powerquery爬網站內容體驗而言,數據很少,沒啥反爬措施的,可以用用;如果要爬取的數據很多,有反爬措施,那麼用powerquery就有點坑爹。
股票網站應該都有提供api?用powerquery調用api應該很好獲取數據。
至於您說的選取股票名稱,這些用powerquery倒是很好辦。
⑻ EXCEL載入數據到PowerQuery時,可以選擇是否在E
可以。
可以選擇的,打開Excel2016預覽版,導航到數據選項卡,會發現多了一個PowerQuery組,其中有新建查詢下拉菜單,另外還有聯機查詢、顯示查詢、最近的源三個按老猜鈕。
瀏覽一下新建查詢下核輪拉菜單。單擊新建查詢下拉箭頭,可以看到菜單中有從表格、侍氏型從文件、從資料庫、從Azure、從其他源、合並查詢等功能,有的還有二級菜單提供更詳細的命令選擇,可見支持的查詢源非常多。
⑼ PowerQuery
查詢設置位置
加入新文件
查詢編輯器里無法直接更改數據,需要在上面的功能區里更改數據
合並文件: 合並查詢(橫向合並),追加查詢(縱向合並)
選擇多個表格 :按shift
如果報錯大局,第一個查數據類型是否錯誤
修整和橡悔清除
拆分列
合並列
替換
判斷奇偶數
刪除規則: 默認保留第一行
排序和刪除重復項同時使用會有沖突,解決辦法: 轉換---檢測數據類型(排序後的箭頭要消失)
保留重復項同理
先改數據類型製造錯誤,然後直接刪除錯誤
行列互換
二維轉一維,找二維表中以行的形式出現的欄位,把這些欄位進行逆透視(一維表:一個指標只有一個列;二維表:同個指標很多列)
一維轉二維,找一維表中以列的形式出現的欄位,把這些欄位進行透視
數字排序按照,1,10,11,12,~19,2,20,21......的順序,用怕排序更改
值為文本時,選擇不要聚合
基本
第一行內容是選擇分組條件
新列名:新建的列命名 操作:進滾如讓行各種操作 柱:進行操作的列
高級
可以添加多個選擇分組的條件
所有行
展開:打開選中列的信息 聚合:對選中列進行計數和求和
條件列:創建一個按條件添加當前所選列中的值的新列
索引列:創建一個新的列,其索引從0,1,或者自定義的數開始
重復列:創建一個新的列,復制當前所選列的值
自定義列(所有公式內的標點符號的都用英文輸入法)
條件列文本:公式:「文本」
數值運算:公式:插入一個可用列+,-,*,/插入一個可用列
條件列:公式:
怎麼將僅創建連接的數據導入工作表:查詢和鏈接找到查詢,然後右鍵點擊載入到
若列名順序不同,則合並時列名自動按照當前表格的列名順序排序
若列名不同,則合並後自動生成空格
求每個區域內產品分類的金額
求每個區域每個產品的折扣金額
左外部:A,B,C,D,E; D,E
右外部:D,E; D,E,F,G
完全外部:A,B,C,D,E; D,E,F,G
內部:D,E; D,E
左反:A,B,C;
右反: ;F,G
⑽ 如何在Power Query中提取數據——列表篇(4)
(六)刪除指定數據進行提取
1. 刪除指定數據進行提取
List.RemoveRange (list as list , index as number , optional count as number ) as list
第1參數為數據列表;第2參數為索引數字格式,從0開始;第3參數為刪除的數量,默認為1,如果為0則代表不刪除,同時(第2參數+第3參數)<=列表值的數量;最終生成的是列表
例:
List.RemoveRange({1..10},0)={2..10}
List.RemoveRange({1..10},3,5)={1..3,9,10}
解釋:第2參數索引3代表是第4位,也就是數值4,從此位置開始連續刪除之後的5個值(也就是4-8)。
2. 刪除空值後進行提取
List.RemoveNulls (list as list ) as list
對於列表中的空值進行刪除,生成一個新的列表,只有1個參數。也可以理解為對一個列表選擇不等於空值。List.Select(列表, each _<>null)
例:
List.RemoveNulls({null,1,2})={1,2}
List.Select({null,1,2},each _<>null)={1,2}
3. 批量刪除匹配值後提取
List.RemoveMatchingItems (list1 as list , list2 as list , optional equationCriteria as any ) as list
從列表1從刪除列表2的指定值,如果沒找到則返回原始list1。第1參數為原始列表;第2參數為要刪除的值列表;第三參數是可以指定一個可選相等條件來空值的測試。
例:
List.RemoveMatchingItems({1..10},{5..10})={1..4}
List.RemoveMatchingItems({#date(2018,11,11),1..10,"a".."友孫z"},List.Transform({0..364},(x)=>Date.AddDays(#date(2018,1,1),x)))={1..10,"a".."z"}
解釋,通過List.Transform函數生成一個2018年的時間列表,這樣就可以把原來列表中有關2018年的時間都可以去除。
List.RemoveMatchingItems({1..10},{5}, each_=5)={1..4,6..10}
解釋:因為第3參數是=5,則找到等於5的值,並刪除
List.RemoveMatchingItems({1..10},{5}, each_<=5)={6..10}
解釋:因為第2參數為{5},第3參數為<=5,用第2參數和第3參數做比較,如果第2參數符合第3參數條件,則刪除條件即為第3參數;如果第2參數不符合第3參數條件,則返回第3參數的相反值。
List.RemoveMatchingItems({1..10},{4}, each_>5)={5..10}
解釋:因為第2參數不符合第3參數的條件,返回的結果是第三
List.RemoveMatchingItems({"a".."z"},{"b"},each_ >="a")={}
解釋:因為第2參數符合第3參數,所以刪除條件為第3參數,好歲鏈所有的值都大於"a",所以都被刪除,返回的是一個空列表。
4. 從尾刪雀拆除列表的最後幾個數據
List.RemoveLastN (list as list , optional countOrCondition as any ) as any
從列表尾刪除N個元素。第1參數是數據列表;第2參數可以是個數也可以是條件,如果是數字則直接刪除最後N項的數據,如果是條件,一旦不滿足條件即結束。
例:
List.RemoveLastN({1..10}, 3)={1..7}
List.RemoveLastN({1..10}, each _>5)={1..5}
解釋:因為從後開始和5比,直到5為止結束。所以返回的是1-5的列表。
List.RemoveLastN({1..10,1}, each _>5)={1..10,1}
解釋:因為從後開始,第一個是1,和第2參數的條件比較,是不符合的,所以就結束對比,也就是沒有符合刪除的條件,返回的就是原列表{1..10,1}。
5. 從頭刪除列表的最後幾個數據
List.RemoveFirstN (list as list , optional countOrCondition as any ) as any
從列表頭刪除N個元素。第1參數是數據列表;第2參數可以是個數也可以是條件,如果是數字則直接刪除最初的N項數據,如果是條件,一旦不滿足條件即結束。
例:
List.RemoveFirstN({1..10},3)={4..10}
List.RemoveFirstN({1..10}, each _<5)={5..10}
解釋:因為從頭開始和小於5比,直到5為止結束。所以返回的是5-10的列表。
List.RemoveFirstN({10,1..10}, each _<5)={10,1..10}
解釋:因為從後開始,第一個是10,和第2參數的條件比較,是不符合的,所以就結束對比,也就是沒有符合刪除的條件,返回的就是原列表{10,1..10}。
6. 根據新列表刪除舊列表中的值
List.RemoveItems (list1 as list , list2 as list ) as list
第1個參數是需要被替換的列表;第2個參數是去要刪除的值列表;返回生成的是新列表格式。
例:
List.RemoveItems({1..10},{5..10})={1..4}
List.RemoveItems({1,2,3,2,1},{1,2})={3}
List.RemoveItems({"a","b","c",1,2,3,"一","二"},{"a".."z"})={1..3,"一","二"}
解釋:因為第2參數是英文字母的列表,所以把第1參數舊列表中所有英文26個字母單字都刪除了。
問:那如何刪除列表中值包含"a"的所有元素?
List.RemoveItems({"ab","bc"},List.FindText({"ab","bc"},"a"))={"bc"}
解釋:因為要考慮到包含,可以參考4List.FindText函數,找到哪些包含"a"的列表值並生成一個新的需要刪除的列表,最後通過List.RemoveItems函數來進行刪除。