請教一個EXCEL 巨集公式的寫法,問題稍微有點複雜!急...

我有兩個EXCEL檔案報表A表和B表,B表共有12個月份的sheet工作表,想要在報表A表的編號A欄的所有格內(例如A2....A100)依序填入文字代號如1-5,1代表月份,5代表各個月份的編號,則B2和C2會自動去尋找B表的1月工作表內的編號為"5"的數量、名稱+代號填入,其他月份相同。

目前我用的方法是儲存格函數公式,我用到的是判斷1-12個月的IF方法,也就是IF為TRUE時,執行VLOOKUP,為FALSE時執行下一個IF判斷。
請教一個EXCEL 巨集公式的寫法,問題稍微有點複雜!急...
B欄數量函數公式寫法:
IF(LEFT(A2,SEARCH("-",A2)-1)="1",VLOOKUP(VALUE(RIGHT(A2,LEN(A2)-SEARCH("-",A2))),'\\路徑\[B.xls]1月'!$A$2:$D$999,2,1),IF(LEFT(A2,SEARCH("-",A2)-1)="2",VLOOKUP(VALUE(RIGHT(A1,LEN(A2)-SEARCH("-",A2))),'\\路徑\[B.xls]2月'!$A$2:$D$999,2,1),""))
其他月份省略...

C欄名稱和代號函數公式寫法,則是用兩個VLOOKUP把它串接起來。
IF(LEFT(A2,SEARCH("-",A2)-1)="1",VLOOKUP(VALUE(RIGHT(A2,LEN(A2)-SEARCH("-",A2))),'\\路徑\[B.xls]1月'!$A$2:$D$999,3,1)&VLOOKUP(VALUE(RIGHT(A2,LEN(A2)-SEARCH("-",A2))),'\\路徑\[B.xls]1月'!$A$2:$D$999,4,1),IF(LEFT(A2,SEARCH("-",A2)-1)="2",VLOOKUP(VALUE(RIGHT(A1,LEN(A2)-SEARCH("-",A2))),'\\路徑\[B.xls]2月'!$A$2:$D$999,3,1)&VLOOKUP(VALUE(RIGHT(A2,LEN(A2)-SEARCH("-",A2))),'\\路徑\[B.xls]1月'!$A$2:$D$999,4,1),""))
其他月份省略...

但是1-12個月的函數寫法又臭又長,函數公式無法容納這麼長的公式,請問VBA巨集公式的寫法為何?因為我對EXCEL研究不深,若能把巨集公式的寫法完整提示則感激不盡,謝謝!

先把表格修改一下,再重寫公式,會比較簡單

a.xls
把編號拆開成 月份、編號
"編號"前面,多加一個"月份",內容用 1~12

"編號",內容,就和 b.xls 一樣,數字就好

b.xls
工作表名稱,用1~12(不要加上"月")

這樣的話,您那些 search'right'len'value... 全部可以省略

公式就變短了
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!