2017-01-22 10 views
0

Ich habe ein Problem, das ich versucht habe, jetzt für ein paar Tage zu lösen, aber ich bin verzweifelt, weil ich nicht die Lösung finden kann.Finden Sie die Zellreferenz in einer Textzeichenfolge in einem Bereich

Die Situation ist, dass ich die Zellbezüge von Apple, im folgenden Beispiel wissen wollen:

Spalte A

  1. Kiwi Banana

  2. Apfel Orange

  3. Grapefruit Kiwi

  4. Banana Ananas

  5. Birne Zitrone

  6. Apple-Kiwi

Also, wenn ich in der Formel füllen, ist das Ergebnis, dass Apple in A2 und A6 zu finden.

Ich habe herausfinden, dass ich die Funktion verwenden soll:

=ADDRESS(MATCH($C$1,$A$1:$A$6,0)+ROW(x)-1,COLUMN(x),4) 

Aber ich weiß nicht, was an der Reihe zu füllen und Spalte Teile. Da muss ein Lookup durchgeführt werden, in einem Bereich und sollte in einer Textzeichenfolge gefunden werden. Find

Hoffentlich können Sie mir helfen!

+0

Vielleicht ist die Verwendung von VBA-Makros ein besserer Weg, um dies zu erreichen als "einfache" Excel-Formeln. – Hugo

Antwort

0

Ich sehe ein paar Dinge, die Sie auf den richtigen Weg bringen könnten.

Erstens, die "Übereinstimmung" -Funktion ist in der Lage, Wildcards zu unterstützen, also könnten Sie statt MATCH("*"&$C$1&"*",$A$1:$A$6,0) verwenden.

Zweitens, da Sie mehrere Ergebnisse möchten, ist es eine schlechte Passform für eine Formel in einer einzelnen Zelle. Stattdessen können Sie das Problem angehen, indem Sie eine Spalte hinzufügen, die bestimmt, ob die Zelle in derselben Zeile mit Ihrem Schlüsselwort übereinstimmt. Ich mag es, Formeln wie diese eine 1 oder 0 zurückgeben, so dass sie summiert. Sie könnten eine Formel wie diese in D1 verwenden und nach unten kopieren. =1-1*ISERR(FIND($C$1,A1))

Wenn Sie schließlich Ihre Ergebnisse in eine einzelne Zelle sortieren möchten, können Sie die Formel "textjoin" verwenden. Nehmen wir an, Sie haben eine Spalte in E wie =IF(D1=1,"A"&ROW(A1),"") hinzugefügt, die "A2" oder "A6" oder leer heißt. Dann können Sie Ihre Ergebnisse in einer einzelnen Zelle mit der forumula, =TEXTJOIN(", ",TRUE,$E$1:$E$6), beschreiben.

0

Neben der Frage der Rückgabe der Adresse, gibt es auch die Frage, "Apfel" von "Ananas" zu unterscheiden. Die folgende Formel macht beides.

myRng ist der Bereich, in dem sich Ihre Informationen befinden. Das Format Ihrer Strings ist wie in Ihrem Beispiel (Leerzeichen getrennt).

Beachten Sie, dass in der Formel haben wir ein Leerzeichen vor und nach the Fruit, und auch vor und nach jedem Eintrag im Bereich.

Mit Ihren Daten in Spalte A, und Ihre "Frucht" in C1, versuchen Sie diese Formel in einem beliebigen Zelle, und füllt nach unten, bis Sie Rohlingen sehen:

=IFERROR(ADDRESS(AGGREGATE(15,6,1/ISNUMBER(SEARCH(" " & $C$1 & " "," " & myRng & " "))*ROW(myRng),ROWS($1:1)),COLUMN(myRng)),"") 

enter image description here

Search wird als es ist Groß-und Kleinschreibung. Wenn Sie eine Übereinstimmung zwischen Groß- und Kleinschreibung benötigen, verwenden Sie Find.

Aggregate ermöglicht die Verwendung der Small Funktion und ignoriert auch Fehler. Das Array, auf das es wirkt, ist ein Array von sequentiellen Fehlerwerten (DIV/0) und Zeilennummern.

Ich empfehle Ihnen, das Formula Evaluation Tool zu verwenden, um zu untersuchen, wie die Formel funktioniert.

Verwandte Themen