2014-09-10 8 views
7

Ich habe lange nach einer Methode zur Verwendung von INDEX MATCH in Excel gesucht, um die absolut nächste Zahl in einem Array ohne Reorganisation meiner Daten zurückzugeben (da MATCH lookup_array in absteigender Reihenfolge benötigt) um den nächstgrößeren Wert zu finden als lookup_value, aber in aufsteigender Reihenfolge, um den nächstliegenden Wert zu finden, der kleiner als lookup_value ist).Verwendung von INDEX MATCH zum Finden des absolut größten Wertes

Ich fand die Antwort in this post. XOR LX-Lösung:

= INDEX (B4: B10, MATCH (TRUE, INDEX (ABS (A4: A10-B1) = MIN (INDEX (ABS (A4: A10-B1) ,,)) ,,) 0)

funktionierte perfekt für mich, aber ich weiß nicht warum. Ich kann die meisten davon rationalisieren, aber ich kann diesen Teil nicht herausfinden

INDEX (ABS (A4: A10-B1) = MIN (INDEX (ABS (A4: A10-B1) ,,))

Kann jemand diesen Teil erklären? ich hasse es zu blenden sie mit und weiß, dass es in der Zukunft nützlich sein wird.

Antwort

8

ich denke, es macht Sinn für mich, es zu erklären, dann!

es eigentlich half nicht, dass ich eine Technik anwandte, die entworfen ist, um zu vermeiden, eine Formel als eine Reihenformel eingeben zu müssen, dh mit CSE. Obwohl dies von einigen Konten als ein Pluspunkt betrachtet werden könnte, denke ich, dass ich es falsch fand, es hier zu verwenden, und wahrscheinlich würde ich es nicht noch einmal tun.

Die Technik beinhaltet das Einfügen zusätzlicher INDEX-Funktionen an geeigneten Stellen innerhalb der Formel. Dies zwingt die anderen Funktionen, die normalerweise ohne Array-Eintrag nur auf das erste Element eines ihnen zugeführten Arrays einwirken würden, stattdessen über alle Elemente innerhalb dieses Arrays zu arbeiten.

Allerdings, während ich eine einzige INDEX-Funktion zum Zweck der Vermeidung von CSE einfügen, ist meiner Meinung nach völlig in Ordnung, denke ich, wenn es zu dem Punkt kommt, wo Sie zwei oder drei (oder noch mehr) solche Zwänge verwenden , dann sollten Sie wahrscheinlich überdenken, ob es das alles wert ist (die wenigen Tests, die ich getan habe, deuten darauf hin, dass in vielen Fällen die Leistung schlechter ist aus in der Nicht-Array, INDEX-schwere Version als die entsprechende CSE Konfiguration). Außerdem ist die Verwendung von Array-Formeln etwas zu fördern, nicht etwas zu vermeiden.

Sorry für die Wanderung, aber es ist irgendwie auf den Punkt tatsächlich seit, wenn ich hatte Ihnen die Array-Version gegeben, dann haben Sie vielleicht nicht zurück auf der Suche nach einer Erklärung kommen, da diese Version wie folgt aussehen würde:

= INDEX (B4: B10, MATCH (TRUE, ABS (A4: A10-B1) = MIN (ABS (A4: A10-B1)), 0))

die leichter objektiv weit ist syntaktisch verstehe als die andere Version.

Lassen Sie mich wissen, wenn das hilft und/oder Sie immer noch wollen, dass ich eine Aufschlüsselung beider Lösungen durchführe, was ich gerne tun würde.

Sie können auch die folgenden Links von Interesse (ich hoffe, dass ich nicht durch diese Entsendung jeder dieser Website Regeln zu brechen bin):

https://excelxor.com/2014/09/01/index-an-alternative-to-array-cse-formulas https://excelxor.com/2014/08/18/index-returning-entire-rowscolumns

Grüße

+0

A-ha ! Ja, jetzt verstehe ich es, so schlau! Als jemand, der nur selten mit Datensätzen umgehen muss, die groß genug sind, um Array-Formeln praktisch zu machen (oder INDEX für diese Angelegenheit), gebe ich zu, dass ich sie meide. Und danke für die Referenzen, jetzt kann ich auch die Sans-CSE-Methode verstehen! Ich werde auf jeden Fall die Lesezeichen behalten. – rgj

+0

Gut! Ich bin froh. Und du bist willkommen! P.S. "Sans-CSE" ist jetzt in meinem Vokabular für zukünftige Verwendung auch :-) –

+0

Ihre Antwort erklärt es gut, keiner der Links funktioniert. – tillmas

Verwandte Themen