Ich verwende die Funktion LOOKUP, um das letzte Vorkommen einer bestimmten Zeichenfolge in einer angegebenen Spalte zu finden, und zwar wie folgt:
LOOKUP(A3;Runs!D3:D6;Runs!A3:A6)
Allerdings sind die Grenzen im Vektor fest codiert: Läuft!A3:A6. Ich möchte, dass dieser Wert dynamisch auf die letzte Zelle mit Daten der Spalte gesetzt wird. Ich habe diese Formel gefunden, die den letzten Zeilenindex angibt:
COUNTA(Runs!A:A)
Mit dieser anderen Funktion erhalte ich den Zellverweis (den Inhalt der Zelle), aber ich kann ihn scheinbar nicht mit der LOOKUP-Formel zusammenführen:
INDIRECT("Runs!A"&COUNTA(Runs!A:A))
Gibt es eine Möglichkeit, die Obergrenze für LOOKUP dynamisch festzulegen?
BEARBEITEN: Der Zeilenbereich enthält keine leeren Zeilen.
Grüße
Antwort1
Ich verstehe – das Problem besteht darin, Ihren dynamischen Bereich als Bereichsspezifikation in LOOKUP zu verwenden. Sie waren fast am Ziel. Versuchen Sie Folgendes:
LOOKUP(A3;INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D));Runs!A3:A6)
Antwort2
die Funktion offset() wird Ihr Problem lösen
Ersetzen Sie Runs!A3:A6 durchOFFSET($A$3,0,0,ANZAHL2($A$3:$A$1000),1)
Sie können mit einem Dynamic Define Range etwas ausgefallenere Dinge erreichenhttp://support.microsoft.com/kb/830287
Antwort3
Das habe ich dann auch gemacht. Vielen Dank an alle für eure Kommentare, die Antwort von fixer1234 war besonders hilfreich. Der LOOKUP-Befehl lieferte keine genauen Ergebnisse, also habe ich ihn durch ein INDEX/MATCH-Paar ersetzt. Außerdem habe ich eine N/A-Prüfung hinzugefügt.
IF(ISNA(INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0))), "", INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0)))