Eine Formel von MS Excel 2010 nach MS Excel 2003 konvertieren?

Eine Formel von MS Excel 2010 nach MS Excel 2003 konvertieren?

In Excel 2010 verwende ich folgende Formel:

=_xlfn.IFERROR(INDEX(K$76:K$2044,MATCH(Q23,P$76:P$2044,0),1),INDEX(K$76:K$2044,MATCH(Q23,L$76:L$2044,0),1))

Aber ich muss es in Excel 2003 konvertieren. Ich habe herausgefunden:

_xlfn.IFERROR

Wird

_IF(ISERROR)

In Excel 2003 lautet die Formel jetzt:

=IF(ISERROR(INDEX(K$76:K$2044,MATCH(Q23,P$76:P$2044,0),1),INDEX(K$76:K$2044,MATCH(Q23,L$76:L$2044,0),1)))

Aber es gibt zu viele Argumente für 2003. Kann jemand helfen, die Formel zu verkürzen oder zu vereinfachen?

Antwort1

Wenn ich die Logik richtig verstehe, möchten Sie: Nach Q23 in P76:2044 suchen. Wenn es dort ist, einen Index von K basierend auf dieser Position durchführen, andernfalls einen Index von K basierend auf einer Übereinstimmung mit L76:2044 durchführen (und darauf vertrauen, dass eine Übereinstimmung besteht).

Wenn das richtig ist, würde ich die Fehlerfalle in die MATCH-Funktion und nicht in den INDEX verschieben, und zwar so:

=INDEX(K$76:K$2044, WENN(ISTFEHLER(VERGLEICH(Q23,P$76:P$2044,0)), VERGLEICH(Q23,L$76:L$2044,0), VERGLEICH(Q23,P$76:P$2044,0)) ,1)

(Ich habe ein paar zusätzliche Leerzeichen hinzugefügt, um es etwas deutlicher zu machen.) Dies sollte das Debuggen erleichtern und die Berechnung wahrscheinlich effizienter machen, da nur zwei Übereinstimmungen und ein Index durchgeführt werden, statt 2 und 2 (obwohl der Index ziemlich effizient ist).

Da das Array für den Index eine einzelne Spalte ist, könnten Sie die letzte „,1“ weglassen, obwohl mir persönlich die dadurch gebotene Klarheit gefällt, dass hiermit definitiv ein Wert aus der ersten Spalte abgerufen wird.

Dies funktioniert übrigens immer noch nicht, wenn Q23 weder in L noch in P gefunden wird. Vielleicht kann das in Ihrem Datensatz nicht passieren, aber seien Sie vorsichtig.

Antwort2

Ihnen fehlt eine Klammer, um die ISERROR-Funktion abzuschließen, und Sie haben nicht angegeben, was Sie wollen, wenn kein Fehler vorliegt. Vielleicht wiederholen Sie Ihre erste Indexsuche: -

=WENN(ISTFEHLER(INDEX(K$76:K$2044,VERGLEICH(Q23,P$76:P$2044,0),1)),INDEX(K$76:K$2044,VERGLEICH(Q23,L$76:L$2044,0),1)),INDEX(K$76:K$2044,VERGLEICH(Q23,P$76:P$2044,0),1))

verwandte Informationen