Es wird versucht, Daten in Excel nach Kalenderquartalen zu sortieren und zu zählen

1

Ich versuche, eine Excel-Formel einzurichten, die einen Datenbereich mit den in c7: c30 angegebenen Daten und den Kategorien Aktiv - "A" und Abgeschlossen - "C" in L7: L30 untersucht. Ich versuche, jede Zeile einzeln zu betrachten und zu vergleichen, ob die Daten zwischen dem 01.01.12 (B38) und dem 31.03.12 (C38) (dem ersten Quartal des Jahres) liegen und ob Diese Bedingung ist erfüllt, dann zählen Sie diejenigen, die mit "A" für aktiv markiert sind.

Ich habe mir das Folgende ausgedacht, das nicht funktioniert, da es sich nur um das erste angegebene Datum handelt und alle mit "A" gekennzeichneten Daten zählt, wenn das erste Datum mit den Spezifikationen des ersten Quartals übereinstimmt.

{= (WENN (($ C $ 7: $ C30> = $ B $ 39) * ($ C $ 7: C $ 30 <= $ C $ 39), COUNTIF ($ L $ 7: $ L30, "a"), 0)) }

Bitte helfen Sie mir herauszufinden, was an dieser Formel falsch ist, dass sie nicht jede Zeile einzeln betrachtet und stattdessen alle mit A gekennzeichneten zählt, wenn das erste Datum als wahr erachtet wird, gegen die dargestellte if-Anweisung.

Entschuldigung, nicht großartig bei Excel, jede Hilfe wird geschätzt.

Vielen Dank!

user128953
quelle

Antworten:

2

Ich denke, Sie könnten ein Problem mit der Art und Weise haben, wie Sie die Matrixformel strukturiert haben. Wenn Sie nur Ihre Anweisung auspacken, erstellen Sie ein Array mit so vielen Zeilen wie Sie haben, wobei jede Zeile das Ergebnis des COUNTIF enthält ($ L $ 7: $ L30, "a"), wenn die Datumsbedingung erfüllt ist oder 0.

Da Sie keine Zählfunktionen anwenden, die das gesamte Los umbrechen, gibt die Funktion das gesamte Array zurück, aber Sie werden nur das erste Ergebnis in der Zelle sehen, weshalb es nur von einer Zelle gesteuert zu werden scheint.

Ein alternativer Ansatz wäre folgender:

Ihre drei Tests (für jede Zeile) sind:

  • Datum> = B38
  • Datum <= C38
  • condition = "a"

und du willst nur zählen, wo alle drei wahr sind.

Handlich genug, werden wahre Werte zu 1 und falsche zu 0 ausgewertet, so dass wir eine Multiplikationsoperation verwenden können, um herauszufinden, was Sie wollen.

Für eine einzelne Zeile möchten Sie also Folgendes tun

(C7 >= B38) * (C7 <= C38) * (L7="a")

(Und natürlich, erweitern Sie es auf C7: C30 usw., um Ihre Interessenreihen abzudecken.)

Um dies dann zu einem einzigen Wert zusammenzufassen, möchten Sie das gesamte Los in einer SUM () - Anweisung zusammenfassen, die nur die Liste durchläuft und alle Werte addiert.

SUM( (C7:C30>B39) * (C7:C30<=C39) * (L7:L30="a") )

Wenn Sie neugierig geworden sind, kehren Sie zu Ihrer ursprünglichen Formel zurück und schließen Sie sie mit einer sum () - Anweisung ab. Das Ergebnis wird angezeigt, wenn Ihr Status auf "a" gesetzt ist. multipliziert mit der Anzahl der Zeilen, die die Datumsbedingung erfüllen.

(Feststellung:. Matrixformeln ein wenig Kopf nehmen Kratzen zunächst, aber wenn Sie Ihren Kopf um sie zu erhalten, sie sorta gut funktionieren las ich ursprünglich auf ihnen http://www.cpearson.com/excel/ArrayFormulas.aspx die ist immer noch eine ziemlich gute Erklärung, wenn alles noch verwirrend ist ..)

Tanantish
quelle
Sie können SUM auch in tanantishs Vorschlag durch SUMPRODUCT ersetzen, dann benötigen Sie keinen "Array-Eintrag". Wenn Sie über Excel 2007 oder höher verfügen, können Sie COUNTIFS für mehrere Bedingungen verwenden, z. B. = COUNTIFS (C $ 7: C $ 30, "> =" & B39, C $ 7: C $ 30, "<=" & C39, L $ 7: L $ 30, "a")
barry houdini