2012-11-02 245 views
9

我有一個具有多個值的excel數組。有些小於256個字符,有些長度大於256.克服Excel Vlookup函數限制的256個字符的方法

當我嘗試使用示例字符串執行VLookup時,如果匹配少於256個字符的行,可以得到結果。對於大於256個字符的行,它返回一個'#N/A'。

有沒有辦法使用Vlookup或通過使用Excel中的其他內置函數來克服這個限制?

回答

16

如果您正在使用VLOOKUP這樣

=VLOOKUP(A2,D2:Z10,3,FALSE)

即D2仰視A2:D10和返回從F2結果:F10那就試試這個公式,而不是

=INDEX(F2:F10,MATCH(TRUE,INDEX(D2:D10=A2,0),0))

根據需要更改範圍

編輯:

我在這裏嘲諷了一個例子 - A2:A10中的值與G2:G10中的值相同,但順序不同。每個這些值的長度是B列中所示,VLOOKUP在列C上欄的A值> 255個字符,但在COL d的INDEX/MATCH式在所有情況下

https://www.dropbox.com/s/fe0sb6bkl3phqdr/vlookup.xls

+0

INDEX(D2:D10 = A2,0)不起作用,並且超過356個字符長的值返回false。 – sandyiit

+1

好的,也許我錯過了什麼,你使用的是什麼VLOOKUP公式,是同一張工作表上的所有東西?我在我的答案中附加了一個例子 –

+0

我是一個不同的用戶,有dame問題,它是否在同一張表上?需要這樣的輸出: 屬性'文本'驗證失敗!預計: 'C:\ Data \ Sample_Data_for_QA',比較:'相同',實際:'RSS源'。 ........#N/A - 是輸出 .....索引公式爲= INDEX('[Old Regression.xlsm] Regression Report'!$ E $ 4:$ E $ 96 ,MATCH(B23,'[Old Regression.xlsm] Regression Report'!$ B $ 4:$ B $ 96)) ...... previous = VLOOKUP(B7,'[Old Regression.xlsm] Regression Report'! $ B $ 4:$ G $ 96,4,FALSE) –

3

我不得不工作失敗同樣的問題,我寫了這個自定義原語vlookup。它不關心你的單元格的值的長度。

Function betterSearch(searchCell, A As Range, B As Range) 
     For Each cell In A 
      If cell.Value = searchCell.Value Then 
        betterSearch = B.Cells(cell.Row, 1) 
        Exit For 
      End If 
      betterSearch = "Not found" 
     Next 

End Function 

PS不禁想知道爲什麼由專業人士寫的原VLOOKUP在這種特殊情況下實現比這個10內襯FUNC更差?