在操作EXCEL時,大家一錠都有一個經驗,在設定某些功能時,
如用分析工具箱時,點選完想要用的分析方法後,
例如圖1.迴歸操作的輸入Y範圍(Y):;
圖1.迴歸操作
點選後就可以在EXCEL工作頁中選擇要使用的資料範圍。
這個對話框,可以透過Application.InputBox這個方法來滿足。
根據MSDN回饋我們的,要掌握回傳值的結果,要設定TYPE這個參數;
筆者設定為8,也就是"儲存格參照,視為 Range 物件"的回傳值。
EX:
喜歡攝影的我,喜歡到處拍拍照,吃點當地的特色食物。 跟朋友聊天之餘,推薦我寫成網誌跟大家分享。 沒外出的日子,喜歡在家當隱性宅,寫程式看看書,追劇。 希望我的手札文,不會讓你翻桌 XD
在操作EXCEL時,大家一錠都有一個經驗,在設定某些功能時,
如用分析工具箱時,點選完想要用的分析方法後,
例如圖1.迴歸操作的輸入Y範圍(Y):;
圖1.迴歸操作
點選後就可以在EXCEL工作頁中選擇要使用的資料範圍。
這個對話框,可以透過Application.InputBox這個方法來滿足。
根據MSDN回饋我們的,要掌握回傳值的結果,要設定TYPE這個參數;
筆者設定為8,也就是"儲存格參照,視為 Range 物件"的回傳值。
EX:
前一篇VBA:基本迴歸入門,講了一點入門的部分,在這補充一點分析工具箱的VBA 引用,請在增益集中選如圖1的部分,別單單僅選分析工具而已歐。要點選分析工具箱-VBA
迴歸基本概念:
2變數 X與Y之間的統計關係,為一非確定值得關係,當X的值確定後,Y的值並非唯一恆定值。而用以表示如此2變數X與Y間的數學模式稱為迴歸方程式或機遇模式。
迴歸分析既然是統計推論,自然有其必要基本假設要驗證,小編強調是針對樣本歐,迴歸分析有三個基本特性的檢定:常態性檢定、同質性檢定與隨機性檢定,這三個檢定有機會在聊聊。
回到主題,我們簡單整理一個例子。💪
簡單線性迴歸的長相:
透過最小平方法求兩個B0、B1的參數:
流程:1.先載入資料轉換為一維陣列。2.開始計算B1、B0參數找出迴歸方程式。3.計算 SST SSR SSE ERROR Y預測值4.計算判定係數5.輸出結果
EXCEL 內建相當多檔案物件與函數可以使用,函數部分最常用的是DIR這個函數,在DOS的年代這個指令是用來列印出目前該目錄內的檔案清單,其實DOS'S DIR與EXCEL的DIR很像!!
不過EXCEL是取得檔案名稱。基本操作參考MSDN:DIR
回歸主題,先把標題變成問題:
如果我們要搜尋關鍵字找檔案名稱應該怎做?
再延伸:如果我們要搜尋關鍵字找檔案名稱應該怎做,又可以防呆?
再延伸一次:如果我們要搜尋多關鍵字找檔案名稱應該怎做,然後又可以防呆?
(把問題想三次,比較好聚焦)
如果我們要搜尋關鍵字找檔案名稱應該怎做?
例如要搜尋2330台積電的EXCEL檔案。
語法:DIR("路徑\2330.xlsm")
Private Sub CommandButton1_Click()
a = Dir("X:\股票\2330.xlsm")
End Sub
解說:如果有找到則A變數會儲存2330.xlsm的字串資料。
續:
如果我們要搜尋關鍵字找檔案名稱應該怎做,又可以防呆?
試想防呆這情況,為何需要防呆??若以上敘語法有需要其實是不需要的歐,
因為都指定檔案名稱跟副檔名了;反之當僅知道關鍵字時,
例如僅知道2330,則我們需要多一道手續來防呆避免抓錯檔案。
使用INSTR來檢查有無含有指定關鍵字。
類似這樣子:
IF INSTR(FILENAME,"2330")>0 THEN
END IF
所以合併一下:
Private Sub CommandButton1_Click()
a = Dir("X:\股票\2330*.*")
IF INSTR(A,"2330")>0 THEN
MSGBOX "找到了 " & A
END IF
End Sub
可以加上迴圈作多檔案名稱檢查:
Private Sub CommandButton1_Click()
a = Dir("X:\股票\*2330*.*")
Do while a<>""
IF INSTR(A,"2330")>0 THEN
MSGBOX "找到了 " & A
END IF
a = Dir("X:\股票\2330*.*")
loop
End Sub
再延伸一次:如果我們要搜尋多關鍵字找檔案名稱應該怎做,然後又可以防呆?
發想:
結合兩個迴圈做不同關鍵字檢查,檢查無誤則把正確檔案明確留下。
Private Sub CommandButton1_Click()
I=1
a = Dir("X:\股票\*" & ACTIVESHEET.RANGE("A" & I ).VALUE & "*.*")
Do while a<>""
ACTIVESHEET.RANGE("B" & I )=A '先列出檔名
J=1
Do while ACTIVESHEET.RANGE("B" & J) <>""
IF INSTR(ACTIVESHEET.RANGE("B" & I).VALUE,
ACTIVESHEET.RANGE("A" & I ).VALUE)=0 THENACTIVESHEET.RANGE("B" & I ).VALUE=""
END IF
J=J+1
loop
I=I+1
a = Dir("X:\股票\*" & ACTIVESHEET.RANGE("A" & I ).VALUE & "*.*")
loop
End Sub
20261005 紀錄,今年度透過自主開發的演算法,做個小紀錄,之前我的雷達紀錄關閉了,用低調的方式作紀錄,看懂就看懂,單純紀錄;目前美國雷達開始上線測試。 我與ai互動: 問:0050 我今年 9.5%年報酬 006208 9.98%年報酬,你覺得? ai: 我覺得成績不錯,...