2016-03-19 7 views
2

Was ich brauche, ist eine Formel zum Zählen von eindeutigen Werten in TITLE basierend auf Kriterien der Spalte FIAP/Medium & Jahr.Zähle eindeutige Textwerte basierend auf der Bedingung in einer anderen Spalte zwischen Datumskriterien

Dies beginnt mit der Betrachtung des Datums in der Arbeitsblattspalte M/Jahr, der Bereich ist 23/03/13 - 01/06/16. Es muss dann die Spalte I/FIAP Medium nach 'Digital' überprüfen und schließlich die eindeutigen Bilder in A/Titel zählen.

Dies ist die Arbeitsblattspalte

Title    FIAP/Medium  Year 
    Conors Push  Digital   3/23/2013 
    Conors Push  Digital   4/1/2013 
    Flippin Hell  Digital   4/1/2013 
Narrowing the Gap Digital   4/1/2013 
The Perfect Storm Digital   4/8/2013 
Conors Push   Digital   4/12/2013 
Splash and Dash  Digital   4/12/2013 
Wind Power   Digital   4/12/2013 
Conors Push   -    4/28/2013 
Eyes On The Ball  -    4/28/2013 
Narrowing the Gap  -    4/28/2013 
The Bunkers Demise -    4/28/2013 
A Few Inches More Digital   5/1/2013 
Entwined   Digital   5/1/2013 
Conors Push   Digital   5/14/2013 
Fosbury Delight  Digital   5/14/2013 
Narrowing The Gap Digital   5/14/2013 
Sprint For The Lin Digital   5/14/2013 

Ich habe

mit Formel kommen
=SUM(--(FREQUENCY(IF(International!M2:M1000>="6/1/2016",IF(International!M2:M1000<="3/23/2013",IF(International!I2:I1000<>"",IF(International!I2:I1000="Digital",MATCH(International!A2:A1000,International!A2:A1000,0))))),ROW(International!A2:A1000)-ROW(International!A2)+1>0))) 

aber seine Null-Wert zeigt. Dies liegt möglicherweise daran, dass die Datumsbedingung zwei Bedingungen mit einer Spalte erfordert.

Bitte helfen Sie mir mit dieser Formel oder einer anderen Methode zu zählen einzigartig basierend auf diesen Bedingungen. Speziell geht

+0

Gibt es konstante Zusätze/Löschungen? zur Liste? Müsstest du die Formel ständig ändern und die Bereiche ändern? – Jeeped

+0

Ja ich müsste – Analystanand

Antwort

4

Es ist eine ziemlich gängige Methode eines pseudo-COUNTUNIQUE¹ auf der Grundlage der SUMPRODUCT und COUNTIF Funktionen, die wie folgt aussieht.

=SUMPRODUCT(1/COUNTIF(A2:A19, A2:A19&"")) 

Aber das kompensiert die Bedingungen. Um Bedingungen hinzuzufügen, müssen Sie zu einem COUNTIFS function wechseln. Zusätzlich müssen sowohl der Zähler als auch der Nenner der Divisionsoperation durch die Bedingungen und die Umkehrung der Bedingungen angepasst werden, damit Sie eine echte Zählung ohne Fehler mit einer #DIV/0! zurückgeben.

=SUMPRODUCT(((C$2:C$19>=F2)*(C$2:C$19<=G2)*($B$2:$B$19=E2))/ 
      (COUNTIFS(A$2:A$19, A$2:A$19&"", C$2:C$19, ">="&F2, C$2:C$19, "<="&G2, $B$2:$B$19, E2)+ 
       (C$2:C$19<F2)+(C$2:C$19>G2)+($B$2:$B$19<>E2))) 

count_unique_with_conditions

Jetzt ist, dass Formel schwer gibt es konstante Ergänzungen und Streichungen in der Anzahl der Zeilen zu halten. Um dynamische Bereiche zu erstellen, können wir INDEX jede vollständige Spalte verwenden und MATCH verwenden, um das letzte Datum als Terminator für jede Spalte zu finden.

=SUMPRODUCT(((C$2:INDEX(C:C, MATCH(1E+99,C:C))>=F2)*(C$2:INDEX(C:C, MATCH(1E+99,C:C))<=G2)*($B$2:INDEX(B:B, MATCH(1E+99,C:C))=E2))/ 
    (COUNTIFS(A$2:INDEX(A:A, MATCH(1E+99,C:C)), A$2:INDEX(A:A, MATCH(1E+99,C:C))&"", C$2:INDEX(C:C, MATCH(1E+99,C:C)), ">="&F2, C$2:INDEX(C:C, MATCH(1E+99,C:C)), "<="&G2, B$2:INDEX(B:B, MATCH(1E+99,C:C)), E2)+ 
     (C$2:INDEX(C:C, MATCH(1E+99,C:C))<F2)+(C$2:INDEX(C:C, MATCH(1E+99,C:C))>G2)+($B$2:INDEX(B:B, MATCH(1E+99,C:C))<>E2))) 

Ja, das sieht aus wie ein Chaos, aber es fügt dynamisch und subtrahiert Zeilen, die von der SUMPRODUCT Funktion verarbeitet, so dass die Berechnung Effizienz an erster Stelle steht.


¹ Eine Erklärung, wie das funktioniert, Count Unique with SUMPRODUCT() Breakdown sehen.

+0

Ziemlich komplexe Formel aber funktioniert :) – Analystanand

+0

Es wirklich nur ** sieht ** komplex wegen der wiederholten MATCH-Funktionen, die die vollständigen Spaltenreferenzen in der Zeile mit dem letzten Datum abgeschnitten werden müssen. SUMPRODUCT sollte niemals mit vollständigen Spaltenreferenzen verwendet werden, es sei denn, Sie werden vom Berechnungszyklus bezahlt. 1.000 oder sogar 25.000 Reihen mögen viel erscheinen, aber beide sind viel weniger als 1.048.576 Reihen. Die Formel kann mit einem dynamischen benannten Bereich vereinfacht werden, aber das wäre eine andere Frage. – Jeeped

0

Sie Formel arbeitet mit ein paar Veränderungen:

  1. Das Datum Strings Datumswerte mit DatWert() Funktion

  2. Die Vergleichsoperatoren für die Tage, zu konvertiert werden müssen ausgetauscht werden (es sollte < = 2016 Datum und> = 2013 Datum)

  3. Der Vergleich gegen "digital" sein muss umgekehrt werden

  4. Die innerste IF-Anweisung eine Null als Wert für Situationen benötigt, wo die Bedingung

  5. ich die äußersten Klammern entfernt nicht die

hier nicht benötigt werden, ist die modifizierte Version, die funktioniert:

= FREQUENZ (IF (International! M2: M1000 < = DATENWERT ("6/1/2016"), IF (International! M2: M1000> = DATENWERT ("23.03.2013"), IF (International! I2: I1000 <> "", IF (International! I2: I1000 <> "Digital", MATCH (In ternational! A2: A1000, International! A2: A1000,0), 0)))), ROW (International! A2: A1000) -ROW (International! A2) +1> 0)

+0

funktioniert nicht, gibt einen Wert 533 – Analystanand

+0

Was sollte die richtige Antwort sein? Ich richte das Arbeitsblatt so ein, wie du es in der Frage gezeigt hast, und die Formel funktioniert; Ich testete, indem ich einige der Werte änderte und sah, dass sich die Anzahl entsprechend änderte. Es ist möglich, dass Aspekte, die Sie nicht erwähnt haben, Auswirkungen auf die Lösung haben. Auf jeden Fall, wenn die Antwort von @Jeeped für dich funktioniert, bist du sowieso gut. – MikeC

Verwandte Themen