2014-02-16 41 views
0

我有這個名單中的Excel:Excel中:匹配返回錯誤

ID (A) | Name (B) 
1  | xyz 
2  | Yzx s.r.o 
3  | xxx a.s. 
... 

在另一份名單,我只有名字和需要分配基於上面的列表上的ID給他們。

我使用這個函數=Match(H4; ListName!B2:B50; 0)(H4單元格包含我想從其他列表中匹配的公司的名稱並獲得它的ID)。


沒有匹配,匹配函數返回#Nedostupný(#Not可用)
有匹配,匹配函數返回#Názov? (#Name?)

編輯:什麼可能會導致此問題? Match函數是否適用於包含空格,點或其他特殊字符的字符串?列類型是否重要(格式是否設置爲文本)...? PS:我想得到有匹配的行數,然後從同一行的A列中選擇ID。有更容易的方法嗎?我如何將列名與從匹配返回的行結合起來?像=A+Match(...)

+2

我想你應該使用'捷克'等值的'MATCH':'POZVYHLEDAT'。有關更多詳細信息,請參閱http://www.piuha.fi/excel-function-name-translation/index.php?page=english-czech.html。 BTW <用於從列'A'返回相應的值使用'= INDEX(ListName!A2:A50; POZVYHLEDAT(H4; ListName!B2:B50; 0))' –

+0

我沒有這樣的等價物。但匹配支持,只是返回錯誤,我不明白爲什麼或如何擺脫它。 – Buksy

+0

從你的錯誤消息'#Nedostupný'和'#Názov?'我看到你使用的是非英文版的excel。所以,你應該使用你的本地函數 –

回答

0
  1. 就像上面說的simoco,你可能有本地化函數名稱的問題。

  2. 你應該總是使用固定引用查找列表,像這樣:=Match(H4; ListName!$B$2:B$50$; 0)或者這樣:=Match(H4; ListName!$B:$B; 0)否則當您填充公式在列表中向下基準也將下降:=Match(H4; ListName!B3:B51; 0)=Match(H4; ListName!B4:B52; 0)等,所以不會含有你需要的數據。

  3. 若要組合或寧可連接字符串,請使用&運算符:="A"&MATCH(...)

  4. 也許您應該考慮使用VLOOKUP()函數而不是MATCH()它會根據第一列中的搜索結果返回來自另一列的值,而不是您要查找的值的位置值。

0

首先,你的函數的語法不正確 - MATCH函數使用逗號(,)作爲單獨的參數之間的分隔符,分號(;)。其次,你應該在MATCH函數中爲你的查找數組使用絕對單元格引用。第三,您需要確保存儲查找數組的工作表被稱爲ListName(即與您的公式中引用的相同);第二,您需要確保在其中存儲查找數組的工作表被稱爲ListName(即與您的公式中引用的相同)。工作表名稱中不應有空格(例如列表名稱等),因爲這會阻止Excel在工作簿中引用正確的工作表[我假設您在同一工作簿中調用MATCH函數(雖然不一定是相同的工作表)作爲你的查找數組]。

因此,您MATCH函數應該閱讀:

=Match(H4,ListName!$B$2:$B$50,0) 

而且我檢查這個代碼 - 它完全適用於您的預期目的(如上面你的問題描述)或者使用的Excel 2010或Excel 2013時

+0

我認爲在一些非英文版的Excel中用分號分隔參數是因爲逗號在這些國家被用作小數點分隔符。 – nekomatic

+0

@nekomatic:可能......我不會很熟悉Excel的其他語言版本(因爲我自己不使用它們)。但是,如果OP打算在上面的初始文章中使用'MATCH',則'MATCH'函數只接受逗號作爲其參數分隔符(不是分號),否則它可能會返回一個'#NAME'錯誤,因爲沒有使用分號作爲分隔符的MATCH。 –

相關問題