2013-04-11 3 views
20

В столбце A у меня есть список других имен. В столбце B, I имеет значение либо 0, либо 1.Count Уникальные значения с условием

Я хочу, чтобы получить количество всех уникальных имен из колонки А, которые имеют 1 в столбце B.

Используя ниже формулы массива я могу рассчитывать уникальные имена, но не в состоянии применить условие на столбец B.

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

+ 1 Хороший вопрос :) –

+0

@SiddharthRout спасибо :) – Tejas

ответ

8

Предполагая, что не более 100 строк попробуйте эту «формулу массива» для подсчета различных имен в A2: A100, где есть 1 в такая же строка в 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))

подтвердил CTRL+SHIFT+ENTER

Обратите внимание, что я говорю не отличается уникальным, как два не то же самое

+0

+ 1 Избили меня к нему на 5 секунд :) –

6

, как это?

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

Это формула массива. Вы должны нажать CTL + SHIFT + ENTER

Скриншот

enter image description here

+0

@SiddarthRout: Хороший, но на самом деле трудно понять :) спасибо в любом случае – Tejas

+0

Brilliant. Спасибо за образование! – CompanyDroneFromSector7G

3

ли это быть формула? Очень простой способ сделать это - создать сводную таблицу из столбцов A и B. Затем установите столбец B как поле фильтра и значение A в качестве значений (вам нужно пометить столбцы A и B). Тогда A4 на сводном листе (по крайней мере, по умолчанию) должен содержать ваш ответ. Это будет работать для любого списка размеров и действительно будет работать при наличии нескольких условий.

Если это должна быть формула, она должна быть полностью такой? Если вам разрешено сортировать по A до того, как ваша формула работает, то как насчет этого рабочего процесса. Я не сумасшедший об этом, и я подозреваю, что это может быть улучшено.

1) Сортировка по A (по возрастанию или убыванию), а затем с помощью B (по убыванию)

2) В C каждая строка C поместить формулу так:

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

С1 будет, как следует:

=b1 

Перетащите от C2 до последней строки данных (скажем, c500).

3) Затем подсчитывайте, суммируя C, = sum (c1: c500).

Вы можете, конечно, перетащить формулу под строками данных (если вы знаете максимальное количество, которое вам нужно), оно должно возвращать 0 для всех пустых строк. Затем, когда вы добавите данные в A и B, остальные будут обновляться автоматически. Вероятно, вам также придется прибегнуть к данным.

Одна из приятных особенностей решения сводной таблицы заключается в том, что она может автоматически расти с помощью набора данных до тех пор, пока вы вставляете новые данные в строки существующих данных. Конечно, сортировка не требуется.

+0

Это очень легко. Приятно 1. Но путаница, до чего я должен перетащить формулу в колонку C? Это должно быть статичным? – Tejas

+0

Я пытался уточнить. – BKay

+0

Если бы я вовремя осознал, что ваш исчерпывающий ответ включал опцию PT, которую я бы не опубликовал. – pnuts

3

Относительно простое решение этой общей проблемы является

= СУММ ((В: В = 1)/(COUNTIFS A: A, A: A, B: B, B: B))

введен как формула массива.

Вам нужно будет ограничить размер массивов, где у вас есть данные.