Excel - подсчет уникальных значений, соответствующих нескольким критериям - PullRequest
3 голосов
/ 23 февраля 2011

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

Учитывая следующий пример:

A        B       C
QUANT    STORE#  PRODUCT
1        75012   banana
5                orange
6        56089   orange
3        89247   orange
7        45321   orange
2                apple
4        45321   apple

В приведенном выше примере мне нужно знать, сколько уникальных магазинов с действующим STORE # получили апельсины ИЛИ яблоки.В приведенном выше случае результат должен быть 3 (магазины 56089, 89247 и 45321).

Вот как я начал пытаться решить проблему:

=SUM(IF(FREQUENCY(B2:B9,B2:B9)>0,1))

Приведенная выше формула дастколичество уникальных магазинов с действующим номером магазина, а не только те, которые получили апельсины или яблоки.Как я могу добавить эти дополнительные критерии?

1 Ответ

1 голос
/ 04 марта 2011

Мой делается немного по-другому (и работает), но главная причина, по которой я публикую это, заключается в том, что мне было интересно, можно ли как-то превратить вторую часть моей формулы в формулу массива, таким образом, делая ее короче.

Для этого рассортируйте 3 столбца в столбце B от наименьшего к наибольшему, и, поскольку его часть в настоящее время является формулой массива, введите формулу и [ctrl] + [shift] + [enter].Отсортированные данные теперь выглядят так:

  A     B       C
QUANT   STORE#  PRODUCT
  7   45321   orange
  4   45321   apple
  6   56089   orange
  1   75012   banana
  3   89247   orange
  5           orange
  2           apple

И формула:

={SUM((B3:B9>0)*(C3:C9="orange"))+SUM((B3:B9>0)*(C3:C9="apple"))}-{IF(AND(OR(C3="orange",C3="apple"),OR(C4="orange",C4="apple"),B3=B4),1,0)+IF(AND(OR(C4="orange",C4="apple"),OR(C5="orange",C5="apple"),B4=B5),1,0)+IF(AND(OR(C5="orange",C5="apple"),OR(C6="orange",C6="apple"),B5=B6),1,0)+IF(AND(OR(C6="orange",C6="apple"),OR(C7="orange",C7="apple"),B6=B7),1,0)}

Первая часть (в фигурных скобках) довольно понятна:

SUM((B3:B9>0)*(C3:C9="orange"))+SUM((B3:B9>0)*(C3:C9="apple")) 

Мне интересно узнать, можно ли выразить вторую часть в виде формулы массива.Первоначально я придумал

=SUM((AND((C3:C9="orange"),OR(C4:C9="orange",C4:C9="apple")))*(B3:B9=B4:B10)*(B3:B9<>""))

, но мне кажется, что по какой-то причине "банан" считается законной записью.Поэтому мне нужно было вводить все элементы во 2-й части вручную, а не использовать формулу массива.У кого-нибудь есть идеи, как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...