2016-07-22 8 views
0

Ich würde gerne wissen, ob es möglich ist, die SUMME-Funktion mit impliziten oder "verschachtelten" Arrays zu verwenden. Mit "implizitem" Array meine ich eine Matrix, deren Daten in keinem Rang der Tabellenkalkulation in ihrer endgültigen Form vorliegen, sondern in der Funktion eines anderen Arrays. Nehmen wir zum Beispiel an, dass wir Daten einer unabhängigen Variablen (deren Werte alle Ganzzahlen von 0 bis 5 haben) im Rang A1: A100 und Daten einer abhängigen Variablen in B1: B100 haben. Mit der SUMME-Funktion können wir beispielsweise einfach die Summe der abhängigen Variablen berechnen, wenn die unabhängige Variable 4 ist. Aber wenn wir die Summe der Quadrate der abhängigen Variablen kennen wollen, ist es nicht so einfach, tatsächlich gibt die SUMME-Funktion ein Fehler, wenn wir SUMME schreiben (A1: A100; 4; B1: B100^2), egal wie wir sie eingeben (als Array oder als einfache Formel).Implizites Array mit sumif in Excel

Gibt es eine Möglichkeit, dies zu tun, ohne eine ganze Spalte für die Quadrate der Werte von Spalte B verschwenden zu müssen?

Ich weiß, dass für dieses Beispiel die Funktion SUMMENPRODUKT ((A1: A100 = 4) * B1: B100^2) die Aufgabe erledigen würde, was ich nicht weiß ist, wie man Arrays "verschachtelt" sehr nützlich) im Allgemeinen.

Antwort

1

Die Antwort ist nein, fürchte ich. Die Bereiche, die in COUNTIF(S)/SUMIF(S)/AVERAGEIF(S)muss entweder:

1) Verweise auf Arbeitsblatt

2) Constructions reicht die Entschlossenheit Verweise auf Arbeitsblatt

Ein Beispiel für ersteres Bereiche:

=SUMIF(A1:A10,"A",B1:B10)

Und zwei der letzteren (die nur identi sein passieren cal der oben):

=SUMIF(A1:INDEX(A:A,10),"A",B1:INDEX(B:B,10))

=SUM(SUMIF(OFFSET(A1,{0,1,2,3,4,5,6,7,8,9},),"A",OFFSET(B1,{0,1,2,3,4,5,6,7,8,9},)))

Hier SUMPRODUCT den Vorteil gegenüber dieser Gruppe von Funktionen hat, dass Konstruktionen, die Bereiche tun weitergegeben werden nicht unbedingt lösen Arbeitsblatt.

Es kann jedoch durchaus der Fall sein, dass eine effizientere Einrichtung erreicht wird, indem, wie Sie vorgeschlagen haben, zuerst eine zusätzliche Spalte innerhalb des Arbeitsblatts verwendet wird, um die Quadrate zu berechnen und dann auf diese Spalte innerhalb eines SUMIF zu verweisen da einer der Hauptvorteile, die COUNTIF(S), SUMIF(s), etc. über SUMPRODUCT beanspruchen können, ist, dass beliebig große Referenzen ohne Beeinträchtigung der Rechenleistung übergeben werden können. Zum Beispiel kann der Unterschied in der Leistung zwischen:

=SUMIF(A:A,"A",B:B)

und:

=SUMPRODUCT(0+(A:A="A"),B:B)

ist enorm, die letztere, die alle 1.048.576 Zellen innerhalb dieses Bereichs zu verarbeiten hat (ob sie technisch jenseits sind die zuletzt verwendeten Zellen oder nicht), überhaupt nicht empfehlenswert.

Grüße