Wandeln Sie die Textergebnisse einer Array-Formel in ein verwendbares Format um

Wenn die Ergebnisse einer Array-Formel Zahlen sind, finde ich es im Allgemeinen einfach, eine geeignete Methode zu finden, um das Array zu einem einzigen Ergebnis zusammenzufassen. Wenn es sich bei den Ergebnissen einer Array-Formel jedoch um Text handelt, ist es schwierig, die Formel so zu bearbeiten, dass ein einzelnes gewünschtes Ergebnis erzielt wird. Zusamenfassend, Gibt es eine Methode zum Bearbeiten eines Arrays mit Textergebnissen, die ich übersehen habe? Die endgültige gewünschte Formel, die nicht funktioniert, finden Sie unten in dieser Frage, und fordern Sie Lösungen an.

* Bearbeiten - Nachdem ich das noch einmal gelesen habe, kann ich meine Frage abwechselnd folgendermaßen zusammenfassen: Gibt es eine Möglichkeit, auf mehrere Textelemente aus einem 'Formel-Array-Ergebnis' zuzugreifen, ohne sie einzeln auszuwählen (z. B. mit INDEX)?

Beispiele, in denen Array-Formeln funktionieren, wobei das Ergebnis-Array Zahlenwerte ist

(1) Beispiel 1: Angenommen, Spalte A, Zeilen 1 bis 500, ist eine Liste der Produkt-IDs im Format xyz123, und Spalte B, Zeilen 1 bis 500, zeigt den Gesamtumsatz für dieses Produkt. Wenn ich den Umsatz für das Produkt mit dem höchsten Umsatz ermitteln möchte, bei dem die letzten drei Ziffern einer ID über 400 liegen, könnte ich eine Array-Formel wie die folgende verwenden (bestätigt mit STRG + UMSCHALT + EINGABETASTE anstelle von nur EINGABETASTE):

=MAX(IF(VALUE(RIGHT(A1:A500,3))>400,B1:B500,""))

(2) Beispiel 2 Gehen Sie nun davon aus, dass Spalte B anstelle von Sales Produktnamen enthält. Ich möchte jetzt einfach den Vornamen zurückgeben, der mit den Kriterien der letzten 3 Ziffern der Produkt-ID> 400 übereinstimmt. Dies könnte folgendermaßen geschehen:

=INDEX(B1:B500,MIN(IF(VALUE(RIGHT(A1:A500,3))>400,ROW(A1:A500),"")))

Hier habe ich ein wenig manipuliert, so dass der eigentliche Array-Teil der Formel [IF (RIGHT (A1: A500,3 ...]) ein Wertergebnis [die Zeilen der Zellen A1: A500 mit den letzten 3 Ziffern] zurückgibt sind über 400]; Ich kann daher MIN verwenden, um nur die erste übereinstimmende ROW # anzuzeigen, und dann kann ich dieses reduzierte Ergebnis in einer regulären INDEX-Funktion verwenden.

(3) Beispiel 3 Ein letztes Beispiel finden Sie in der Diskussion zu einer ähnlichen Frage hier [Ausführlicher als in meinem unten zusammengefassten Beispiel, auf eine Weise, die für diese Frage nicht direkt relevant ist]:https: //stackoverflow.com/a/31325935/509002

Nehmen Sie jetzt an, dass Sie eine Liste aller Produktnamen möchten, wobei die letzten 3 Ziffern der Produkt-ID> 400 sind. Meines Wissens kann dies nicht in einer einzelnen Zelle durchgeführt werden, sondern muss durch Platzieren jedes einzelnen Ergebnisses in einer nachfolgenden Zelle erfolgen. Die folgende Formel könnte zum Beispiel in C1 platziert und 10 Zeilen nach unten gezogen werden und würde dann die ersten 10 Produktnamen mit den Produkt-IDs mit den letzten 3 Ziffern> 400 anzeigen.

=INDEX($B$1:$B$500,SMALL(IF(VALUE(RIGHT($A$1:$A$500,3))>400,ROW($A$1:$A$500),""),ROW()))

Beispiel, bei dem Array-Formeln nicht funktionieren, bei dem das Ergebnis-Array aus Textwerten besteht

Jetzt gehe ich davon aus, dass ich die Ergebnisse in Beispiel 3 übernehmen und einige Textmanipulationen daran vornehmen möchte. Angenommen, ich möchte sie alle zu einer einzigen Textfolge zusammenfassen. Das Folgende funktioniert nicht, da die Verkettung eine Reihe solcher Ergebnisse nicht als akzeptable Argumente akzeptiert.

=CONCATENATE((IF(VALUE(RIGHT($A$1:$A$500,3))>400,ROW($B$1:$B$500),"")))

So ist die Frage: Weiß jemand, wie man diese letzte Formel zum Laufen bringt? Oder wie man eine Formel zum Laufen bringt, die eine Reihe von Textergebnissen aufnimmt und entweder in einen 'verwendbaren Bereich' konvertiert [so dass sie in die Verknüpfung oben eingefügt werden kann] oder sofort mit Textargumenten bearbeitet werden kann [wie zum Beispiel mid , suchen, ersetzen, etc.]? Im Moment ist die einzige Methode, die ich sehen kann, die Verwendung des obigen Beispiels 3, und dann weiterzugehen und beispielsweise Verketten (C1, C2, C3 ... C10) zu sagen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage