Ich möchte eine Excel-Formel erstellen, die ein Array durchläuft und N übereinstimmende Ergebnisse zurückgibt. D. h. ich würde diese Formel zuerst in Zelle A1 (zum Beispiel) haben und sie würde das erste übereinstimmende Ergebnis zurückgeben. Wenn ich sie nach unten in die Zellen A2, A3 usw. ziehe, gibt sie jeweils das 2. und 3. übereinstimmende Ergebnis zurück. Ich habe derzeit eine Formel, die Folgendes tut:
INDEX(Sheet2!$B$2:$B$10081,AGGREGATE(15,3,(Sheet2!$AA$2:$AA$10081="TRUE")/(Sheet2!$AA$2:$AA$10081="TRUE")*(ROW(Sheet2!$AA$2:$AA$10081)-ROW(Sheet2!$AA$1)),ROWS($R$73:R73))))
Ich versuche jedoch, die ODER-Funktion zu verwenden. Anstatt also nur zu prüfen, ob ein Zellbereich WAHR oder FALSCH ist (dies geschieht derzeit mit Hilfszellen/-spalten), möchte ich nur in der Lage sein, den Bereich zu prüfen, ob er eine der folgenden Bedingungen erfüllt:
- Zellen, deren Wert über 999999 liegt
- Zellen, deren Wert 0 ist
- Zellen, deren Wert negativ ist (<0)
Mein Versuch ist unten:
INDEX(Sheet2!$A$2:$A$10081,AGGREGATE(15,3,(OR(Sheet2!$B$2:$B$10081>999999,Sheet2!$B$2:$B$10081=0,Sheet2!$B$2:$B$10081<0))/(OR(Sheet2!$B$2:$B$10081>999999,Sheet2!$B$2:$B$10081=0,Sheet2!$B$2:$B$10081<0))*(ROW(Sheet2!$B$2:$B$10081)-ROW(Sheet2!$B$1)),ROWS($P$73:P73))))
Dies funktioniert jedoch nicht, da das dritte Argument von aggregate() ein Array sein muss und ich eine OR-Funktion verwendet habe, die als Boolean ausgewertet wird. Vor diesem Hintergrund bin ich mir nicht sicher, wie ich eine OR-Funktion richtig integrieren kann, um die oben genannten 3 Bedingungen zu überprüfen.
Antwort1
Die Zugabe wird eineODERFunktion entspricht jedem Eintrag. Also:
(myRng>999999)+(myRng<=0)
gibt ein Array zurück, {1..0}
abhängig davon, ob Ihre Kriterien erfüllt sind.
Um das Array für die AGGREGATE
Funktion zu erstellen, etwa:
1/((myRng>999999)+(myRng<=0))*myRng
Antwort2
Wenn Sie Excel 365 verwenden und Zugriff auf die Funktion FILTER haben, können Sie FILTER verwenden, um das Array zurückzugeben. Jede ODER-Bedingung kann in Klammern eingeschlossen und durch ein getrennt werden +
, wie hier beschrieben:
FILTER-Funktion - Office-Support
Speziell:
...wir verwenden die FILTER-Funktion mit dem Additionsoperator (+), um alle Werte in unserem Array-Bereich (A5:D20) zurückzugeben, die Äpfel enthalten ODER in der Region Ost liegen...
Auch wenn Sie nicht allzu viel über Ihre Daten wissen, sollte etwas Ähnliches das richtige Array zurückgeben (das eigentlich nicht mit „small“ aggregiert werden muss, wenn Sie alle übereinstimmenden Zeilen zurückgeben möchten).
=FILTER(Sheet2!$A$2:$A$10081,(Sheet2!$B$2:$B$10081>999999)+(Sheet2!$B$2:$B$10081=0)+(Sheet2!$B$2:$B$10081<0))
JEDOCH... Ich habe gerade Ihren Kommentar gesehen, in dem Sie sagten, dass dies in Excel 2016 verwendet wird, sodass FILTER nicht funktioniert (ich lasse es in der Antwort, falls es anderen hilft).
In Excel 2016 (und in Excel 365) können Sie Power Query verwenden, da Sie anscheinend wirklich nur versuchen, Zeilen zu finden, die bestimmte Kriterien erfüllen.
Ich habe einige Beispieldaten erstellt:
Wählen Sie nun einfach eine beliebige Zelle in den Daten aus und verwenden Sie Daten > Daten abrufen und transformieren > Aus Tabelle/Bereich, um den Power Query-Editor mit einer Abfrage Ihrer Daten zu öffnen.
Filtern Sie im Power Query-Editor den Wert nach den Kriterien, die Sie verwenden möchten:
Verwenden Sie nun Start > Schließen und Laden, um die Daten wieder in die Arbeitsmappe einzufügen:
Der letzte Schritt besteht darin, sicherzustellen, dass die Abfrage in angemessenen Abständen aktualisiert wird.
Setzen Sie den Cursor in die Abfrageergebnisse, gehen Sie zu Abfrage > Eigenschaften und konfigurieren Sie die Aktualisierungseigenschaften nach Wunsch: