2017-05-18 5 views
0

Ich habe eine Arbeitsmappe mit mehreren Blättern, die jeweils eine große Menge von identisch formatierten Daten enthält. Ich möchte eine Formel in ein Übersichtsblatt eingeben, das Daten aus den Datenblättern summiert und die zu summierenden Daten anhand einer Reihe von Kriterien auswählt.Excel-Summe über mehrere Blätter mit Kriterien-Array

Die Liste der Blätter wird dem Namen ‚AdHoc_Sheets‘ und die Liste der Kriterien namens ‚Uncontrollable_Compensation‘.

Erster Versuch:

=SUMPRODUCT(SUMIF(INDIRECT("'"&AdHoc_Sheets&"'!"&"C:C"),A40,INDIRECT("'"&AdHoc_Sheets&"'!"&"E:E"))) 

Das funktioniert gut, wenn nur ein einzelnen Kriterien (in diesem Fall 'A40') benötigt wird. Die Herausforderung, die ich finde, ändert das als eine Reihe von Kriterien.

Zweiter Versuch:

={SUMPRODUCT(SUM(IF(ISERROR(MATCH(INDIRECT("'"&AdHoc_Sheets&"'!"&"C:C"),TRANSPOSE(Uncontrollable_Compensation),0)),0,INDIRECT("'"&AdHoc_Sheets&"'!"&"E:E"))))} 

, die eine Null zurückgibt, wenn es ist nicht CSE'd und ein # N/A Fehler, wenn es CSE'd ist. Etwas über die Dynamik des Jonglierens der Arrays bringt mich in Unordnung, und ich kann nicht genau sagen, ob ich mich an MMULT oder eine andere Methode wenden muss. Danke im Voraus.

+0

Was genau ist Ihr neuer Zustand, ausgedrückt in Worten? Dass der Wert in Spalte C NICHT mit den in Uncontrollable_Compensation enthaltenen Werten übereinstimmt? –

+0

Das Gegenteil, eigentlich - das Formelergebnis sollte eine Summe aller Werte in Spalte E aller Blätter im Bereich 'AdHoc_Sheets' sein, wobei der Wert in Spalte C aller Blätter im Bereich 'AdHoc_Sheets' im Bereich 'Unsteuerbare_Kompensation' liegt. –

+0

Danke. Ist unkontrollierbare_Kompensation ein vertikaler oder horizontaler Vektor? –

Antwort

0

Unter der Annahme, dass die Einträge in Spalte C sind Text, nicht numerisch, Matrixformel **:

=SUM(IF(ISNUMBER(MATCH(T(OFFSET(INDIRECT("'"&AdHoc_Sheets&"'!"&"C1"),TRANSPOSE(ROW(C1:C100)-MIN(ROW(C1:C100))),0)),Uncontrollable_Compensation,0)),N(OFFSET(INDIRECT("'"&AdHoc_Sheets&"'!"&"E1"),TRANSPOSE(ROW(C1:C100)-MIN(ROW(C1:C100))),0))))`

Mit einer solchen Konstruktion kann man nicht ‚weg‘ mit willkürlich ganze Spalten ohne Beeinträchtigung Referenzierung etwas leisten. Daher kann ich den Bereich von Zeile 1 bis Zeile 100 wählen, den Sie natürlich ändern können, aber achten Sie darauf, ihn so klein wie möglich zu halten.

Grüße

** Matrixformeln sind nicht in der gleichen Weise wie 'Standard' Formeln eingegeben. Anstatt nur ENTER zu drücken, halten Sie zuerst STRG und SHIFT gedrückt und drücken erst dann ENTER. Wenn Sie es richtig gemacht haben, werden Sie bemerken, dass Excel geschweifte Klammern {} um die Formel legt (obwohl Sie nicht versuchen, diese selbst manuell einzufügen).

+0

Dank XOR. Gibt nur einen Fehler # N/A zurück ... Ich frage mich, ob es mit der Aufnahme von 'ISNUMBER' zu tun haben könnte, da dies ein Array von 'falsch' erzwingt, wenn der Bereich Unsteuerbare_Kompensation getestet wird, bei dem es sich ausschließlich um Text handelt. Wohlgemerkt, nachdem Sie die Formel mit und ohne diese ISNUMBER-Funktion ausprobiert haben, erhalten Sie ein # N/A zurück. Das Ergebnis der Auswertung der Formel scannen ... es sieht so aus, als würde es versuchen, c1 des ersten Blattes, c2 des zweiten, c3 des dritten Blattes, bis zu c7 des siebten (und letzten) Blattes in 'AdHoc_Sheets' zu finden , mit 93 # N/As danach. –

+0

Entschuldigung. Ich nahm unklugerweise an, dass AdHoc_Sheets ein horizontaler Vektor war. Nehmen Sie aus Ihrem Kommentar an, dass es sich tatsächlich auch um einen vertikalen Vektor handelt? –

+0

Ja, das ist richtig. Beide benannten Bereiche sind als vertikale Vektoren eingerichtet. –

Verwandte Themen