trotzdem diesen Code kleiner machen?

399
SSP

Ich habe eine Formel erstellt, die aus verschiedenen Arbeitsblättern übereinstimmt und diese dann zusammenfügt.

Ist es überhaupt möglich, die Codierung kleiner oder besser zu machen? Ich habe es versucht und bin gescheitert, aber keine Ergebnisse erhalten :(

.

Ich habe den folgenden Code:

=IFERROR(INDEX('Report 1'!BC:BC,MATCH(B13,'Report 1'!$A:$A,0)),"0") +IFERROR(INDEX('Report 2'!BC:BC,MATCH(B13,'Report 2'!$A:$A,0)),"0") +IFERROR(INDEX('Report 3'!BC:BC,MATCH(B13,'Report 3'!$A:$A,0)),"0") +IFERROR(INDEX('Report 4'!BC:BC,MATCH(B13,'Report 4'!$A:$A,0)),"0") +IFERROR(INDEX('Report 5'!BC:BC,MATCH(B13,'Report 5'!$A:$A,0)),"0") 
0

2 Antworten auf die Frage

1
Scott Craner

Um Ergebnisse aus Ihrer Formel zu erhalten, entfernen Sie das "aus dem Bereich, 0sodass die Formel nicht versucht, Textzeichenfolgen hinzuzufügen.

Aber wir können die Formel mit einem 3D-SUMIF abkürzen

Mit den Namen der gewünschten Blätter in einer Liste und referenziert sie mit INDIRECT in einem SUMIF:

=SUMPRODUCT(SUMIF(INDIRECT("'" & D1:D5 & "'!A:A"),B13,INDIRECT("'" & D1:D5 & "'!BC:BC"))) 

0
Máté Juhász

Ist es überhaupt möglich, die Codierung kleiner oder besser zu machen?

Nicht wirklich:(

Sie können zwar einige Problemumgehungen verwenden:

  • benannter Bereich : Sie können Namen für Ihre Bereiche definieren und darauf verweisen
  • Unterstützungszelle: Verwenden Sie eine andere Zelle, um das Ergebnis Ihrer MATCHFunktion zu speichern. Sie müssen es also nicht mehrmals ausführen
  • UDF: Verwenden Sie ein Makro, um benutzerdefinierte Funktionen zu erstellen, mit denen Sie schöneren Code als mit Ihrer aktuellen Formel schreiben können