EXCEL使用VLOOKUP的問題

EXCEL使用VLOOKUP的問題
如圖片
我想要在EXCEL中的F3儲存格輸入股票代號或中文名稱
然後帶出下面 股票代碼 中文名稱 111年度eps 備註 的資料

我是使用Vlookup,公式如圖片
輸入數字可以成功帶出

EXCEL使用VLOOKUP的問題
但輸入中文名稱
會出現N/A

後來查詢了一下網路
VLOOKUP好像對應欄只能使用一欄
所以我才會出現N/A
(還是有可以使用VLOOKUP解決的解法?)

網路好像都建議使用INDEX配合MATCH使用
但我研究了一下實在還是摸不著頭緒

不知道像我這樣的情況
INDEX配合MATCH公式可以如何寫呢?

謝謝大家~
2023-10-04 11:35 發佈
我是用笨方法:
把資料複製一份,然後把中文名稱烤到代號欄
這樣在代號欄裡就同時有「數字」和「中文名稱」,Vlookup就找得到了!
betty811129
betty811129 樓主

天啊!你救了我!!這個笨方法馬上成功!! 謝謝你!

2023-10-04 12:16

也可以這樣試試看...
1. 增加一個錯誤時的判斷函數 IFERROR , 若F3為文字時,就改從C8開始搜尋
2. 將原本D7:D13 中文名稱 與 C7:C13 股票代號 兩行資料內容互換

輸入以下函數:
C5: =IFERROR(VLOOKUP($F$3,$B$8:$F$13,3,0),VLOOKUP($F$3,$C$8:$F$13,2,0))
D5: =IFERROR(VLOOKUP($F$3,$B$8:$F$13,2,0),VLOOKUP($F$3,$C$8:$F$13,1,0))
E5: =IFERROR(VLOOKUP($F$3,$B$8:$F$13,4,0),VLOOKUP($F$3,$C$8:$F$13,3,0))
F5: =IFERROR(VLOOKUP($F$3,$B$8:$F$13,5,0),VLOOKUP($F$3,$C$8:$F$13,4,0))





index跟match的方式參考(對應欄可以不用),

=INDEX($C$8:$F$13,IF(LEN($F$3)<>LENB($F$3),MATCH($F$3,$D$8:$D$13,0),MATCH($F$3,$C$8:$C$13,0)),MATCH(C4,$C$7:$F$7,0))

在index列的欄位match那邊可以加入判斷式len<>lenb,判斷是否是中文來決定要比對哪一邊,
IF(LEN($F$3)<>LENB($F$3),MATCH($F$3,$D$8:$D$13,0),MATCH($F$3,$C$8:$C$13,0))

再來依照表頭欄位一樣來判斷是哪一欄,
MATCH(C4,$C$7:$F$7,0)

將C5複製到D5~F5即可。
我比較喜歡用較新版本提供的FILTER功能

=FILTER(C8:F13,C8:C13=F3,FILTER(C8:F13,D8:D13=F3))






Yaude Huang wrote:
我比較喜歡用較新版本提供的FILTER功能


新函數是很好用,
但並非每個人的 Office 都是最新版本,
為了儘量讓所有人都能使用,
我還是偏好使用傳統函數!

兩張圖僅表示輸入代碼或名稱皆可用,
公式部份都一樣,
A4 公式直接向右複製即可,
公式中欄位位置(範圍)請自行依實際表格內容修改!


My Interior Knowledge is Extraordinaire
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?