Ich habe versucht, es funktioniert unter der Annahme, dass:
- "Angehängte Komponenten" befindet sich immer in derselben Spalte.
- Sie versuchen tatsächlich, die Beschreibung für jedes "Material #" nachzuschlagen.
Und ich werde dieses Blatt verwenden, um daran zu arbeiten:
Dies ist möglicherweise nicht genau das, was Sie brauchen, aber ich kann versuchen, meine Antwort mit Ihren Anmerkungen zu verbessern.
Indem Sie Ihre Formel wiederverwenden, um zu identifizieren, wo sich "Angehängte Komponenten" in der Spalte befindet, und dann 2 hinzufügen, wird die relative Zeile angegeben, in der die Materialbeschreibung beginnt:
=MATCH("Attached Components",B1:B32,0)+2
Das Ergebnis ist im Beispiel "7".
Nachdem Sie die letzte Zeile identifizieren müssen, in der sich die Beschreibungen befinden. Um im richtigen Bereich zu suchen, muss die Formel in Abhängigkeit von der Zeile "Angehängte Komponenten" geändert werden. Durch die Kombination von MATCH, ADDRESS, CONCATENATE wird das Sortiment neu erstellt.
MATCH gibt die relative Zeile an, ADDRESS transformiert eine Zeilennummer und eine Spaltennummer in eine Zeichenfolge mit dem Zellennamen (ADDRESS (1,1) = "$ A $ 1"). CONCATENATE setzt die Zeichenfolgen zusammen, um einen Bereich zu erstellen.
CONCATENATE(ADDRESS(MATCH("Attached Components",B1:B32,0)+2,3),":",ADDRESS(MATCH("Attached Components",B1:B32,0)+20,3))
Dies gibt eine Zeichenkette wie "$ C $ 7: $ C $ 25" zurück. Es deckt also die Spalte Beschreibung ab und beginnt in der Zeile, in der Ihre Werte um 18 Zeilen niedriger sind. Um mehr oder weniger Zeilen abzudecken, ändern Sie einfach "+20" in der Formel in den entsprechenden Wert.
Das Finden der letzten Zeile ist nur eine Frage des Findens der ersten leeren Zelle mit IF und MIN.
{=MIN(
IF(
INDIRECT(CONCATENATE(ADDRESS(MATCH("Attached Components",B1:B32,0)+2,3),":",ADDRESS(MATCH("Attached Components",B1:B32,0)+20,3)))="",
ROW(INDIRECT(CONCATENATE(ADDRESS(MATCH("Attached Components",B1:B32,0)+2,3),":",ADDRESS(MATCH("Attached Components",B1:B32,0)+20,3))))
)
)-1}
Diese Formel ist eine Matrixformel. Das ist der Grund, warum es eckige Klammern hat (geben Sie die Klammern nicht ein, sie erscheinen, wenn Sie die Formel eingeben und dann Strg + Umschalt + Eingabetaste drücken)
INDIRECT transformiert den von uns erstellten String in einen Zellbezug. ROW gibt als Ergebnis die Zeilennummer an. MIN nimmt den kleinsten Wert im zurückgegebenen Bereich an. Das "-1" am Ende soll die Zeilennummer der letzten Beschreibung haben und nicht die erste leere Zeile.
Im Beispiel gibt diese Formel "9" zurück.
Jetzt haben wir die Zeilennummer der ersten und der letzten Beschreibung (7 bis 9). Wir können diese Nummern mit ADDRESS, CONCATENATE und INDIRECT beliebig kombinieren, um die von Ihnen benötigten Operationen auszuführen. Diesmal müssen Sie jedoch mit einer bestimmten Zellreferenz arbeiten.
Zum Beispiel ein Material # Lookup:
In diesem letzten Beispiel enthalten die Zellen
E2:
=MATCH("Attached Components",B1:B32,0)+2
F2 (Eingabe mit Strg + Umschalt + Eingabetaste):
=MIN(
IF(
INDIRECT(CONCATENATE(ADDRESS(MATCH("Attached Components",B1:B32,0)+2,3),":",ADDRESS(MATCH("Attached Components",B1:B32,0)+20,3)))="",
ROW(INDIRECT(CONCATENATE(ADDRESS(MATCH("Attached Components",B1:B32,0)+2,3),":",ADDRESS(MATCH("Attached Components",B1:B32,0)+20,3))))
)
)-1
F7:
=VLOOKUP(E7,INDIRECT(CONCATENATE(ADDRESS(E2,1),":",ADDRESS(F2,3))),3,FALSE)
Auf diese Weise wird beim Eingeben einer Materialnummer in Zelle E7 die Beschreibung in Zelle F7 angezeigt.
EDIT :
Im Anschluss an die Kommentare kann die Lösung folgendermaßen ausgearbeitet werden:
Ein komplizierteres Beispiel verwenden:
Die Zeilenübereinstimmung ist nur eine Kaskade von 2 MATCH-Funktionen. Verwenden Sie die erste MATCH-Funktion, um die Teilenummer und dann die zweite Funktion, um den gewünschten Abschnitt zu finden:
F3: Eine Zeichenfolge des gesuchten Teils
F4: Die Formel für die Suche nach der "Teilenummer" in der ersten Spalte.
=MATCH($F$3,A1:A32,0)
F6: Der Name des Abschnitts, den Sie suchen
F7: Die Formel für die Suche nach dem Abschnitt in dem zuvor identifizierten Teil. Die Übereinstimmung erfolgt in einem Bereich, der in der Zeile der "Teilenummer" beginnt (in Zelle F4 gespeichert). Der Bereich wird mit der gleichen Formel erstellt, die INDIRECT, CONCATENATE und ADDRESS verwendet. Dann wird die von MATCH zurückgegebene relative Zeile mit F4-1 versetzt, um die absolute Zeilennummer zu erhalten.
=MATCH($F$6,INDIRECT(CONCATENATE(ADDRESS(F4,2,1),":",ADDRESS(F4+20,2,1))),0)+F4-1
Um nun die erste und die letzte Zeile der Beschreibung zu identifizieren, können wir dieselben Formeln wie zuvor verwenden:
F9: Hinzufügen von 2 zur Zeilennummer der Zeile "Angehängte Komponenten", um die erste Beschreibungszeile zu erhalten.
=F7+2
F10: Suche nach der ersten leeren Zeile im Beschreibungsbereich (beginnend mit der in F9 gespeicherten Zeile). Dies ist eine Matrixformel, die mit eingegeben werden mussCTRL+SHIFT+ENTER
=MIN(
IF(
INDIRECT(CONCATENATE(ADDRESS($F$9,3),":",ADDRESS($F$9+20,3)))="",
ROW(INDIRECT(CONCATENATE(ADDRESS($F$9,3),":",ADDRESS($F$9+20,3))))
)
)-1
Dann können wir zur Anzeige der Beschreibung INDIRECT und eine Indexspalte verwenden:
F15:
=IF($F$9+$E15-1<=$F$10,INDIRECT(ADDRESS($F$9+$E15-1,1)),"")
G15:
=IF($F$9+$E15-1<=$F$10,INDIRECT(ADDRESS($F$9+$E15-1,3)),"")
In diesen Formeln werden die Materialnummer und die Beschreibung für eine Zeile angezeigt, die durch einen Index in der Spalte E gekennzeichnet ist. Die IF-Anweisung soll sicherstellen, dass die Zeilen, die sich unter den letzten Zeilen befinden, nicht angezeigt werden. In diesem Beispiel werden nur 5 Zeilen angezeigt. Sie können diese Formel jedoch kopieren, indem Sie die erste Zeile nach unten ziehen und neue Indizes hinzufügen, um mehr zu erhalten.