2013-04-11 15 views
20

In Spalte A habe ich eine Liste mit verschiedenen Namen. In Spalte B habe ich Werte entweder 0 oder 1Count Unique Werte mit einer Bedingung

Ich mag eine Zählung aller eindeutigen Namen aus der Spalte A erhalten, die 1 in Spalte B

Verwendung unter Array Formel I bin in der Lage zählt eindeutige Namen aber nicht in der Lage anzuwenden Bedingung auf Spalte B

=SUM(1/COUNTIF(A:A,A:A)) 
+0

+ 1 Gute Frage :) –

+0

@SiddharthRout :) Dank – Tejas

Antwort

8

Unter der Annahme, nicht mehr als 100 Zeilen versuchen, diese „Matrixformel“ die in A2 verschiedenen Namen zu zählen: A100, wo a 1 in der es gleiche Reihe in B2: B100:

=SUM(IF(FREQUENCY(IF(B2:B100=1,IF(A2:A100<>"",MATCH(A2:A100,A2:A100,0))),ROW(A2:A100)-ROW(A2)+1),1))

bestätigt mit CTRL+SHIFT+ENTER

Bitte beachte, dass ich anders sagen nicht eindeutig als die beiden nicht die gleiche

+0

+ 1 bis um 5 Sekunden Beat me :) –

6

wie diese sind?

=SUM(--(FREQUENCY(IF(($B$1:$B$8=1), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8), ""), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8))>0)))

Dies ist eine Matrixformel. Sie werden CTL + SHIFT + ENTER

Screenshot

enter image description here

+0

@SiddarthRout: Schön, aber wirklich schwer zu verstehen :) Dank sowieso – Tejas

+0

Brilliant. Danke für die Ausbildung! – CompanyDroneFromSector7G

3

Gibt es eine Formel sein müssen, drücken müssen? Eine wirklich einfache Möglichkeit, dies zu tun, ist eine Pivot-Tabelle aus den Spalten A und B. Dann setzen Sie Spalte B als Filterfeld und Count von A als die Werte (Sie müssen die Spalten A und B beschriften). Dann sollte A4 auf dem Pivot-Blatt (zumindest im Standard) Ihre Antwort enthalten. Dies würde für jede Größenliste funktionieren und würde in der Tat funktionieren, wenn mehrere Bedingungen vorliegen.

Wenn es eine Formel sein muss, muss es ganz so sein? Wenn Sie nach A sortieren dürfen, bevor Ihre Formel funktioniert, wie wäre es dann mit diesem Workflow? Ich bin nicht verrückt und ich vermute, dass es verbessert werden könnte.

1) nach A (aufsteigend oder absteigend), dann von B (absteigend)

2) In C jede Zeile von C eine Formel wie folgt ausgedrückt:

=if (and(A2<>A1,B2=1),1,0) 

C1 als wäre folgt:

=b1 

Ziehen Sie von C2 bis zur letzten Zeile Ihrer Daten (sagen C500).

3) Dann zählen durch Summieren von C, = Summe (c1: c500).

Sie können die Formel mit Sicherheit unter die Datenzeilen ziehen (solange Sie die maximale Anzahl kennen, die Sie benötigen), sollte sie 0 für alle leeren Zeilen zurückgeben. Wenn Sie dann Daten zu A und B hinzufügen, wird der Rest automatisch aktualisiert. Sie werden wahrscheinlich auch die Daten neu sortieren müssen.

Eine nette Sache über die Pivot-Tabellen-Lösung ist, dass sie automatisch mit Ihrem Datensatz wachsen kann, solange Sie die neuen Daten in die Zeilen der vorhandenen Daten einfügen. Natürlich ist keine Sortierung erforderlich.

+0

Es ist sehr einfach. Nizza1. Aber die Verwirrung ist, bis was ich die Formel in Spalte C ziehen sollte? Das muss statisch sein oder? – Tejas

+0

Ich versuchte zu klären. – BKay

+0

Wenn ich rechtzeitig erkannt hätte, wäre Ihre umfassende Antwort die PT-Option, die ich nicht veröffentlicht hätte. – pnuts

1

einfach mit einer Pivot-Tabelle ......:

SO15944249 example

3

Eine relativ einfache Lösung für dieses Problem ist gemeinsamen

= SUM ((B: B = 1)/COUNTIFS (A: A, A: A, B: B, B: B))

eingegeben als eine Array-Formel.

Sie müssen die Größe der Arrays auf die tatsächlichen Daten beschränken.

Verwandte Themen