255 Zeichenbegrenzung für VLOOKUP

12935
zod

Unter Verwendung von Excel 2003 lautet die Formel:

=VLOOKUP(D1 ,A1:B135, 2) 

schlägt fehl, wenn die Länge von D1 mehr als 255 Zeichen beträgt (dh die Liste enthält etwas mehr als 255 Zeichen, D1 hat denselben Textwert und VLOOKUP gibt #VALUE zurück!).

MATCH scheint an der gleichen Zeichengrenze zu leiden.

Ich kann keine offizielle Bestätigung dieser Grenzwerte finden, zum Beispiel hier:

http://office.microsoft.com/de-de/excel-help/vlookup-HP005209335.aspx

oder hier:

http://office.microsoft.com/de-de/excel-help/excel-spezifikationen-und-limits-HP005199291.aspx?CTT=3

Ich weiß, dass Excel eine maximale Grenze für die Länge des in Formeln verwendeten Textes hat, aber es schlägt vor, dass connate funktionieren sollte (in diesem Fall ist dies nicht der Fall, und ich verwende keine Strings in der Formel, sondern verweise auf eine andere Zelle).

Kann jemand bestätigen, dass diese Grenze existiert (es ist immer möglich, dass ich etwas anderes falsch mache)?

Noch wichtiger: Weiß jemand, wie er sie umgehen kann?

Vielen Dank

3
Dieses Verhalten wurde in Excel 2003 und 2007 bestätigt. Sux2Lose vor 13 Jahren 1
Gleiches Problem (in Excel 2003) wilson vor 13 Jahren 0
Hier ist die Lösung, die perfekt für mich funktioniert hat: http://stackoverflow.com/questions/13202473/way-to-overcome-excel-vlookup-function-limit-of-256-zeichen vor 10 Jahren 0
Überprüfen Sie den folgenden Link - funktionierte perfekt für mich: http://stackoverflow.com/questions/13202473/way-to-overcome-excel-vlookup-function-limit-of-256-zeichen vor 10 Jahren 0

3 Antworten auf die Frage

2
chris neilsen

Schreiben Sie Ihre eigene Suche in VBA

Hier ist ein Anfang:

Function MyVL(v As Range, r As Range, os As Long) As Variant Dim cl As Range  For Each cl In r.Columns(1).Cells If v = cl Then MyVL = cl.Offset(0, os - 1) Exit Function End If Next End Function 
2
wtaniguchi

Sie können immer Ihr eigenes VLOOKUP programmieren ... Sie können jedoch alternativ einen Hash aus Ihrem Suchwert berechnen und als neuen Suchwert verwenden.

Kollisionen können auftreten, aber mit einem etwas anständigen Hash-Algorithmus wie MD5 sollte dies kein Problem sein.

Um eine Hash-Funktion zu erstellen, können Sie die Ideen von https://stackoverflow.com/questions/125785/password-hash-function-for-excel-vba verwenden .

Es gibt auch http://superuser.com/questions/550592/is-there-an-excel-function-to-create-a-hash-value, bei dem das OP gezielt Hashing ausführen möchte, da VLOOKUP später verwendet werden soll . ernie vor 10 Jahren 1
0
Elizabeth

Ich suchte nach genauen Übereinstimmungen zwischen zwei Berichten und stieß darauf. Ich habe die verschiedenen Felder eines Berichts und eines anderen Berichts in einer langen Zeichenfolge zusammengefasst und dann mit Vlookup ermittelt, ob jedes Feld von 1000 Datensätzen oder so zwischen den beiden Berichten übereinstimmt. Da stieß ich auf das Problem.

Da es sich um eine einmalige Sache handelte und ich es in kleinere Abschnitte aufteilen konnte, indem ich weniger als 255 Zeichen in 3 separate Spalten verkettete, habe ich dies getan und 3 separate Suchvorgänge geschrieben und die Daten in 3 Abschnitten anstatt auf einmal verglichen. Der Hauptnachteil ist, dass ich nach der Nachschlagetabelle (Spalte) sortieren musste, in der ich die Suche für jede der 3 Untergruppen ausführen wollte, bevor die einzelnen Suchvorgänge ausgeführt werden.

Ich würde meine Lösung für eine einmalige Sache vollkommen akzeptabel nennen, aber wenn ich es mehr als einmal tun müsste, würde ich nach etwas effizienterem suchen.