iT邦幫忙

0

Excel 是否可使用IF搭配Vlookup至不同檔案搜尋。

  • 分享至 

  • xImage

1.背景描述(使用檔案說明如下):
(1)EPS估算表.xlsm。
(2)上市上櫃清單.xlsx。
(3)各年度營收檔案,命名原則為「市場別營收年度.xlsx」,ex:98年上櫃資料為OTC營收_098.xlsx;上市為SII營收_098.xlsx。

2.目前使用「EPS估算表」來抓取所有各相關資料:
(1)「EPS估算表」的「Total」工作表的D4:我是使用Vlookup指令,讓他根據B1輸入的股號,到「上市上櫃清單」檔案中找到這隻股票是「上市」還是「上櫃」。

(2)目前L6-L18,是希望可以根據D4,找出來的市場別,來抓對應的營收資料回傳。EX:如果是上櫃的股票,2009的資料,則到「OCT營收_098.xlsx] 抓營收資料。
但因為該檔案中是包含所有上櫃公司當年的營收,所以在這檔案中也必須根據B1的股號使用VLOOKUP回傳。

但我目前使用IF的判斷值,因為是判斷D4是上市還是上櫃要走不同的VLOOKUP,但D4是一個公式,好像不能判斷。這邊就卡住了!
再麻煩各位前輩指點!

備註:我要插入圖片,怎麼都是網址@@

看更多先前的討論...收起先前的討論...
把圖片上傳到https://imgur.com/
Pinky iT邦新手 5 級 ‧ 2021-03-15 00:21:31 檢舉
請問我這樣對嗎?但好像大家是直接顯示在問題裡吼?!
顯示圖片的markdown語法為
```
![](your_url)
```
Pinky iT邦新手 5 級 ‧ 2021-03-15 09:30:28 檢舉
謝謝您!終於成功了!!!
微笑 iT邦研究生 5 級 ‧ 2021-03-15 15:27:59 檢舉
INDIRECT
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
rogeryao
iT邦超人 7 級 ‧ 2021-03-15 09:56:00
Pinky iT邦新手 5 級 ‧ 2021-03-15 13:04:27 檢舉

謝謝您!我來研究看看!
但我還有一個瓶頸 就是2(2)提到的,我的IF的第一個邏輯值 那個目標欄位我想讓他判斷是「上市」還是「上櫃」,但那個欄位的值是公式出來的 好像沒辦法這樣用!

1
海綿寶寶
iT邦大神 1 級 ‧ 2021-03-15 14:08:56

用 IF 組成儲存格位址字串,再用 INDIRECT 轉成實際位

如下圖所示
1.一年最高價的公式

E7=VLOOKUP($B$2,INDIRECT(IF($D$4="上市","SII","OTC")&"_110!A1:E20"),2)

https://ithelp.ithome.com.tw/upload/images/20210315/20001787jkJpUFrGfZ.png
2.OTC_110 如下
https://ithelp.ithome.com.tw/upload/images/20210315/20001787cvFdQFgkjI.png
3.用 VLOOKUP 取得上市/上櫃如下
https://ithelp.ithome.com.tw/upload/images/20210315/200017875EBWRon0Th.png

Pinky iT邦新手 5 級 ‧ 2021-03-15 21:36:58 檢舉

想請問海綿大,我目前照著我理解的部份做了,無法帶出正確的值
1。我把語法中IF的那段語法放在I2可以組出正確的路徑
語法:=IF($D$4="上市","'D:\jammie1\Money\EPS估算\營收'[SII","'D:\jammie1\Money\EPS估算\營收'[OTC")&"營收_098.xlsx]09801'!$A$1:$J$1200"

2。我在I1中把上面「2。」組出的路徑,直接使用VLOOKUP的語法,可以抓出正確的數值。
語法:=VLOOKUP(B1,'D:\jammie1\Money\EPS估算\營收[OTC營收_098.xlsx]09801'!$A$1:$J$1200,3,0)

3。我在I3使用INDIRECT,直接指向I2的內容,可以帶出正確的路徑。
語法:=INDIRECT("I2")

4。最後把所有的指令在一起,卻不能有正確抓到,不知道是哪裡錯了!
語法:=VLOOKUP(B1,INDIRECT(IF($D$4="上市","'D:\jammie1\Money\EPS估算\營收'[SII","'D:\jammie1\Money\EPS估算\營收'[OTC")&"營收_098.xlsx]09801'!$A$1:$J$1200"),3,0)

☆問題好像出在INDIRECT這裡,我把I4使用VLOOKUP,然後位置是直接使用INDIRECT好像就出錯。
語法:I4=VLOOKUP(B1,INDIRECT("I2"),3,0)

根據這篇的說法
該檔案必須為「開啟」狀態

Pinky iT邦新手 5 級 ‧ 2021-03-16 06:57:38 檢舉

我試著把檔案打開好像也不行~"~

問題出INDIRECT,我做了二個測試:
1。I4=VLOOKUP(B1,INDIRECT("I2"),3,0)
這段就變成#N/A
2。我把I1的IF條件直接放在INDIRECT裡面,就會變成#REF:
語法:
=INDIRECT(IF($D$4="上市","'D:\jammie1\Money\EPS估算\營收'[SII","'D:\jammie1\Money\EPS估算\營收'[OTC")&"營收_098.xlsx]09801'!$A$1:$J$1200")
☆檔案開啟

請問這2段的寫法有沒有什麼問題呢?謝謝!

我要發表回答

立即登入回答