2013-04-11 18 views
20

W kolumnie A mam listę różnych nazw. W kolumnie B, mam wartości 0 lub 1.Oblicz unikalne wartości z warunkiem

Chcę uzyskać liczbę wszystkich unikatowych nazw z kolumny A, które mają 1 w kolumnie B.

korzystając z poniższego wzoru tablicy jestem w stanie Liczba niepowtarzalnych nazwy, ale nie jest w stanie stosować warunki w kolumnie B

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

+ 1 Dobre pytanie :) –

+0

@SiddharthRout Thanks :) – Tejas

Odpowiedz

8

Zakładając, że nie więcej niż 100 wierszy próbować to „wzór tablicy” liczyć różne nazwy w A2: A100, gdzie znajduje się jedna w ten sam wiersz w 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))

potwierdzone CTRL+SHIFT+ENTER

Należy pamiętać, że nie mówię inny wyjątkowy, jak dwa nie są takie same

+0

+ 1 beat mnie do niego przez 5 sekund :) –

6

takiego?

=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)))

Jest to formuła tablicy. Będziesz musiał nacisnąć CTL + SHIFT + ENTER

Zrzut

enter image description here

+0

@SiddarthRout: Ładne, ale bardzo trudne do zrozumienia :) dzięki jakikolwiek – Tejas

+0

Brilliant. Dzięki za edukację! – CompanyDroneFromSector7G

3

Czy to ma być formuła? Naprawdę łatwo to zrobić, aby tabela przestawna z kolumn A i B. Następnie ustawić kolumnę B jako pole filtru i liczbę A jako wartości (trzeba oznaczyć kolumny A i B). Następnie A4 na arkuszu przestawnym (przynajmniej domyślnie) powinno zawierać twoją odpowiedź. To działałoby dla dowolnej listy rozmiarów i rzeczywiście działałoby, gdyby istniało wiele warunków.

Jeśli ma to być formuła, czy musi tak być w całości? Jeśli możesz sortować według A przed rozpoczęciem działania formuły, to w jaki sposób możesz to zrobić. Nie szaleję za tym i podejrzewam, że można to poprawić.

1) Według A (rosnącym lub malejącym), następnie B (malejąca)

2) W C każdy rząd C umieścić wzór takiego:

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

C1 byłby równie to:

=b1 

Przeciągnij z C2 do ostatniego wiersza danych (powiedz c500).

3) Następnie zliczaj, sumując C = suma (c1: c500).

Możesz na pewno przeciągnąć wzór poniżej wierszy danych (o ile znasz maksymalną liczbę), powinien on zwrócić 0 dla wszystkich pustych wierszy. Następnie, gdy dodasz dane do A i B, reszta zaktualizuje się automatycznie. Najprawdopodobniej będziesz musiał uciekać się do danych.

Jedną z zalet rozwiązania tabeli przestawnej jest to, że może on rosnąć automatycznie wraz z zestawem danych, o ile wstawia się nowe dane w rzędach istniejących danych. Oczywiście nie trzeba sortować.

+0

To bardzo proste. Nice1. Ale zamieszanie jest, do tego, co mam przeciągnąć wzór w kolumnie C? To musi być statyczne, prawda? – Tejas

+0

Próbowałem wyjaśnić. – BKay

+0

Jeśli zdałem sobie sprawę z upływem czasu, twoja wyczerpująca odpowiedź obejmowała opcję PT, której bym nie opublikował. – pnuts

3

stosunkowo proste rozwiązanie tego problemu jest wspólnym

= suma ((B: B = 1)/(LICZ.WARUNKI Odp .: A, A: A, B: B, B: B))

wprowadzone jako formuła tablicowa.

Będziesz musiał ograniczyć rozmiar tablic do miejsca, w którym faktycznie masz dane.