Excel | 三個指令輕鬆完成excel爬蟲實作,以工研院產業學院課程網頁為例
千里始於足下,一步一步跟著做,真的去實作,才能弄懂,別怕失敗。
註:函式不懂的地方,可以上網搜尋並實作,會讓你更了解。
Reference
策略篇連結
此篇為實作篇,至於為何要使用INDIRECT、ADDRESS、MATCH這三個指令,請參閱此篇<Excel | 用三個指令,思考爬蟲邏輯演算法(以工研院產業學院課程網頁為例)>動機
某天到公司上班時,公司前輩對黑修斯說:「看一看工研院的課程,如果有興趣的,可以選擇一些課程去進修。」動機:抓出需要的資訊,稟報老闆課程選擇的利弊關係。
身為一個工程師,面對龐大的資訊,立刻使用Excel做資料分析,彙整一些想要的資料,終於完成了一小部分的爬蟲實作,考慮到未來可能不常用Excel做簡單爬蟲,就先記錄在部落格,以備不時之需,也能幫助需要的朋友。
大腦是用來思考的,記憶的事情交給記事本
四個流程完成爬蟲
實作的流程攻略如下:- 找到想要的資訊網頁
- Excel擷取
- Excel資料處理
- 資料呈現
1.找到想要的資訊網頁如下圖
網址:https://college.itri.org.tw/SeminarView2.aspx?posno=4F67E786-9DB9-40A3-B495-6D6D9008425D2.Excel擷取
透過Excel取得網站資料,先到 資料 -> 從web把網頁輸入地址 -> 點到 -> 匯入
出現正在下載的視窗。
匯入資料,點第一格(A1)的位置。
出現如下圖訊息,等待資料擷取。
成功匯入,如下圖所示,擷取的動作完成。
3.Excel資料處理
藉由INDIRECT、ADDRESS、MATCH三個函數,達成資料的處理,簡單說明邏輯:
- 利用MATCH()+ADDRESS()找到需要的資訊位置。
- 再利用INDIRECT()傳回需要的資訊。
實驗函數如何使用時,一團亂的試算表格。黑修斯的習慣是先熟悉一下函數的使用方法,再進行組合。
MATCH()函數
藉由MATCH()搜尋儲存格範圍中的指定項目,並顯示排列數,如下圖所示:
目標值:香蕉
搜尋範圍:A2:A23
香蕉排序在第5個,可以看到黑色框號為5。
實際實作如下,找到需要的資訊。
ADDRESS()函數
藉由ADDRESS()取得工作表中儲存格的位址。
列的位置:放上先前實作的MATCH(),可以得到5,
行的位置:1。(代表第一行A)
輸出表示方式:4。(代表傳回相對位置,可看下圖二)
輸出結果為 A5
圖一 |
圖二 |
小陷阱
由上文中的MATCH()函數,取得資料位置值為5,代表在第五列(A5),而實際實作發現需要的值不在A5,因為設定的搜尋不是從頭開始,而是由A2:A6的範圍去搜尋,所以得資料位置值5,實際上是在A6的位置,如下圖所示。實際應用說明:
透過MATCH()搜尋需要的課程日期,是在112的位置將MATCH()放入ADDRESS()函式中,將得到A112
不過需將數值+1,取得A113位置的資料,才是正確的,由下圖所示。
INDIRECT()函數
INDIRECT()的使用:傳回參考位置的值,利用輸入A113,傳回A113的值。
實際用法如下:
4.資料呈現
再將資料排序成想要呈現樣式即可。轉貼本文時,需註明來自黑修斯隨手札記原創作者 hughes chen(黑修斯),及附上原文連結,同時 禁止修改,禁止商業使用 。
0 留言
不一定能即時回覆問題,有時間會盡量答覆。