Ich habe also eine Tabelle mit einer Reihe kleiner Mini-Charts (siehe unten). Die blauen Zahlen werden vom Benutzer eingegeben und im Diagramm mit den grauen Zellen oben links addiert.
Im Moment mache ich dies mit einer einfachen Summenformel. Die reale Kalkulationstabelle ist viel größer, aber in dem Beispiel wäre C3 = Summe (J3 + C13 + J13), D3 hätte Summe = K3 + D13 + K13 usw. Wie Sie sich vorstellen können, ist es ein PITA, neue Diagramme hinzuzufügen oder vorhandene zu entfernen.
Ich möchte, dass dies automatisch geschieht, ohne dass einzelne Zellen addiert werden müssen. So könnte ich beliebig viele Diagramme hinzufügen oder entfernen, während die Zahlen addiert werden.
Es wäre also so, als würde Zelle E5 alle Zellen in einem Blatt zählen, bei denen eine Zahl drei Zellen unter III und drei Zellen rechts von N / A ist. Oder etwas, das dasselbe bewirkt.
Gibt es eine Möglichkeit, dies zu erreichen, ohne das Layout meiner Tabelle zu ändern?
(Ignorieren Sie das N / As, ich habe es einfach kopiert und eingefügt, um ein einfacheres Beispielbild zu erstellen, ohne die Formeln zu ändern, die bei diesem Vorgang beschädigt wurden).
Sum
fügt nicht zusammenhängende Bereiche hinzu. Vorausgesetzt deine Tische sind immer genau das gleiche angelegt und es wird noch nie Wenn Sie zusätzliche Daten um Ihre Tabellen herum haben, können Sie Ihre Formel leicht erstellen=Sum(J3, C13, J13, C23, J23, ..... ,C500003, J500003, etc)
(Als Randbemerkung, Ihr Beispiel,=sum(J3+C13+J13)
, addiert die 3 Zellenwerte und summiert dann diese einzelne Zahl, da Sie innerhalb der Summenfunktion Plusse verwendet haben. sum ist in Ihrem Beispiel überflüssig und könnte genauso einfach geschrieben werden wie=J3+C13+J13
. Um stattdessen die Summen zu verwenden, verwenden Sie Kommas wie folgt:=sum(J3,C13,J13)
)Antworten:
Kurz gesagt, es gibt keine Möglichkeit, dies zu tun, ohne die Diagrammlayouts zu ändern, die nicht besser sind, als weit mehr Zellen anzugeben, als Sie jemals verwenden werden. In meinem obigen Beispiel ende ich bei cell
J500003
. Angenommen, Ihre Diagramme enden in Zeile 470. Dies ist kein Problem. Leere Zellen zählen als 0 und beeinflussen die Summe nicht. Wenn Sie die Formel zu Beginn beliebig hoch setzen, müssen Sie die Formel nie mehr ändern.Wenn Sie das Layout der Diagramme geringfügig ergänzen möchten, kann die Formel kürzer sein, aber am Ende eine große Anzahl nicht verwendeter Zellen angeben. Wenn Sie "Überschrift" (oder "Status" oder irgendetwas) in die Zelle über "Öffnen" einfügen, können Sie diese Spalten als Datenbank behandeln und verwenden
DSUM
Zum Beispiel das neue Layout:
(Sie müssen Ihre Textzeichenfolge wirklich nur in den Zellen A12 und H2 einfügen. In meinem Beispiellayout habe ich "Header" verwendet.)
Geben Sie nun in A1 die gewünschte Spalte an und in A2 den in dieser Spalte passenden Wert. Zum Beispiel möchte ich alle "Ich" hinzufügen, die "Open" sind. A1 ist also "Header" (da dies der Name ist, den ich der Spalte der Labels gegeben habe) und A2 "Open" ist und die Formel dann angezeigt wird Sein
=DSUM(A12:F140000,"I",A1:A2)+DSUM(H2:M140000,"I",A1:A2)
Die Formel ist viel kürzer, aber sie ist nicht mehr oder weniger effizient und verweist trotzdem auf möglicherweise nicht verwendete Zellen.Wenn Sie verhindern möchten, dass nicht verwendete Zellen vollständig berührt werden, und Sie keinen Text in zwei Zellen einfügen möchten, müssen Sie die VBA-Schleife verwenden.
quelle
Die folgende Formel funktioniert nur, wenn Sie einige Formatierungen ändern.
Formatierungsänderungen erforderlich:
Wenn Sie Ihre Summationen außerhalb des Hauptkörpers haben, funktioniert die folgende Formel gut. Es wäre in
C4
und dann in die anderen Zellen eingefügt. (Die Formel ist eine Matrixformel und sollte mit STRG-UMSCHALT-EINGABE eingegeben werden.)Erweitern
$A$12:$M$25
zu dem größeren Array, das Sie abdecken möchten, und vergewissern Sie sich$A$12:$M$12
ist die gesamte erste Zeile des Arrays und$A$12:$A$25
ist die gesamte Länge des Arrays.Diese Formel funktioniert nur so lange, wie Sie das Gittermuster beibehalten, da nur das Rastermuster betrachtet wird
I, II, III
in der ersten Reihe und der"open" "closed" and "N/A"
In der ersten Spalte werden dann die Schnittpunkte berechnet.Um die Formel etwas mehr zu erklären:
Die eingebetteten if-Anweisungen: the
IF($A$12:$M$12=C$3
findet die entsprechenden Spalten und dieIF($A$12:$A$25=$A4
Die Anweisung findet die entsprechende Zeile.Die äußeren if-Anweisungen:
IF(COLUMN($A$12:$M$25)
undIF(ROW($A$12:$M$25)
zurückgeben, welche Zellen beide Kriterien erfüllenquelle