2017-02-22 3 views
2

Ich versuche, die SUM einer mehrteiligen IF Erklärung zu finden, eine separate Tabelle mit den Funktionen:IF ARRAY Formel

=SUM(IF(AND([Doc.xlsx]Sheet1!$B$7:$B$348="APPL*", C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$I$7:$J$348)) 

HINWEIS: C15 = "A1"

Ich habe versucht, diese Formel zu brechen nach unten in diese zwei separaten Teilen:

=IF(C15=[Doc.xlsx]Sheet1!$A$4:$BG$4,TRUE) 

und

=IF([Doc.xlsx]Sheet1!$B$7:$B$348 = "APPL*",TRUE) 

Diese jedoch alle ausfallen.

Wie können Sie eine einzelne Ausgabe mithilfe von zwei Kriterien finden, z. B. Spaltenkopf und Zeilenkopf?

Hier ist ein Bild von dem, was ich arbeite. Ich muss alle von den Kriterien erfüllten Zahlen aus dem Grid zusammenfassen, indem ich den Spaltenkopf und den Zeilenkopf verwende.

+0

Ihre Summe Bereich nicht die gleiche Anzahl von Spalten wie die Header ist. Schauen Sie sich auch SUMPRODUCT() an, es wird gut damit arbeiten, aber nur der Summenbereich ist die gleiche Anzahl von Spalten. –

Antwort

0

Laut meinen Kommentaren muss eine einheitliche Ausgabe zu den Eingabebereichen haben; die gleiche Anzahl von Zeilen wie die Zeilenköpfe und die gleiche Anzahl von Spalten wie die Spaltenköpfe.

Dies wird dann finden, wo die beiden sich schneiden und die entsprechenden Schnittpunkte summieren.

Mit Array Formel kann nicht AND() oder Funktionen verwendet werden. Verwenden Sie * oder +, um dasselbe zu erreichen.

So etwas wie:

=SUM(IF((A2:A12=B15)*(B1:K1=B16),B2:K12)) 

Als eine Matrixformel mit bestätigt werden muss, Ctrl-Shift-Enter statt Eingabe, wenn Bearbeitungsmodus zu verlassen. Wenn es richtig gemacht wird, wird Excel {} um die Formel setzen.

Aber man kann das gleiche mit SUMPRODUCT() ohne die Notwendigkeit der Ctrl-Shift-Enter.

=SUMPRODUCT((A2:A12=B15)*(B1:K1=B16),B2:K12) 

SUMPRODUCT braucht nicht die Ctrl-Shift-Enter aber die normale Eingabemethode eingeben. Es ist immer noch eine Array-Typ-Formel.

enter image description here


Nun zum zweiten Teil IF/SUMPRODUCT verwenden keine Wildcards, so dass Sie SEARCH() müssen verwendet werden, die die Verwendung von Wildcards erlaubt.

=SUM(IF((ISNUMBER(SEARCH("APPL*",[Doc.xlsx]Sheet1!$B$7:$B$348)))*(C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$C$7:$BG$348)) 

Die SUMPRODUCT:

=SUMPRODUCT((ISNUMBER(SEARCH("APPL*",[Doc.xlsx]Sheet1!$B$7:$B$348)))*(C15=[Doc.xlsx]Sheet1!$C$4:$BG$4),[Doc.xlsx]Sheet1!$C$7:$BG$348) 
+0

Danke Scott, das hat sehr geholfen. Ich habe aber auch Probleme mit meiner Wildcard. Leider sind meine Zeilenköpfe ähnlich, aber nicht gleich, daher ist ein Platzhalter erforderlich. = SUMMENPRODUKT (('[Doc.xlsx] Sheet1'! $ A $ 7: $ A $ 348 = "Appling *") * ('[Doc.xlsx] Sheet1'!$ B $ 4: $ AM $ 4 = C15), '[Doc.xlsx] Sheet1'! $ B $ 7: $ AM $ 348) –

+0

@EmilioBolton siehe Bearbeiten. –

+0

Wie würden Sie diese "ISNUMBER (SUCHE (") zur SUMPRODUKT-Formel hinzufügen? Das ist, was ich habe und mein zurückgegebenes Ergebnis ist "0". = SUMMENPRODUKT (('[Doc.xlsx] Sheet1'! $ A $ 7: $ A $ 348 = (ISNUMBER (SEARCH ("Appling *", "[Doc.xlsx] Sheet1 '! $ A $ 7: $ A $ 348)))) * (' [Doc.xlsx] Sheet1 '! $ B $ 4: $ AM $ 4 = C15), '[Doc.xlsx] Sheet1'! $ B $ 7: $ AM $ 348) –