Различное количество значений в столбце, если совпадают две другие ячейки - PullRequest
2 голосов
/ 22 октября 2019

Бит с формулами массива для подсчета различных значений в одном столбце, в строках, где совпадают две другие ячейки. Извините, если я не могу объяснить лучше. Лучше всего показать вам формулу, которую я создал, и предоставить некоторые образцы данных:

Лист 1

Column A      Column B  
Period 101    Code X
Period 309    Code Y
Period 101    Code Y
Period 101    Code Z
Period 404    Code Y
Period 101    Code X
Period 101    Code X
Period 404    Code X
Period 404    Code Z

Лист 2

Column A      Column B (where the formula should be)
Code X        2
Code Y        3
Code Z        2

По сути, я хочу подсчитать различные значения в столбце A листа 1, только если значение в столбце B листа 1 соответствует значению в столбце A. листа 2. Я предоставил ожидаемый результат для трех кодовых значений.

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

{=SUM(--(FREQUENCY(IF(C5:C11=G5,MATCH(B5:B11,B5:B11,0)),ROW(B5:B11)-ROW(B5)+1)>0))} 

Пожалуйста, игнорируйте строки и столбцы, используемые в формулеКроме того, значения в столбцах A и B на листе 1 встречаются несколько раз, но значения в столбце 1 на листе 2 встречаются только один раз.

Мне любопытно, как кто-то может решить эту проблему. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 22 октября 2019

Предостережение. Этот ответ вряд ли будет полезен для ОП, поскольку эти методы пока доступны только для Инсайдеров Excel

Но как только эти новые функции станут доступны для основного потокаони изменят правила игры.

При этом будет использоваться новая функция Dynamic Array , которая скоро появится в Excel.

Чтобы создать список уникальных значений из столбца B, поместите этотформула в одной ячейке . Excel «разлит» на столько строк, сколько необходимо, чтобы получить уникальный список значений из столбца B. Например, я использовал ячейку E2

=UNIQUE(FILTER($B:$B,$B:$B<>""))

Теперь поместите эту формулу в следующую соседнюю ячейку, я использовал F2

=COUNTA(UNIQUE(FILTER($A:$A,$B:$B=$E$2)))

Опять вытолько нужно поместить эту формулу в одну ячейку, не нужно копировать вниз. Excel будет «разливать» результат на столько ячеек, сколько необходимо, чтобы соответствовать столбцу E.

enter image description here

0 голосов
/ 22 октября 2019

Ваша формула не соответствует вашим образцам данных, но давайте предположим следующее:

enter image description here

Формула в H5:

=SUM(--(FREQUENCY(IF(C$5:C$13=G5,MATCH(B$5:B$13,B$5:B$13,0)),ROW(B$5:B$13)-ROW(B$5)+1)>0))

Введен в виде массива через Ctrl Shift Введите и перетащите вниз

Обратите внимание на полуабсолютные ссылки на ячейки (вы использовали относительные) + насколько мои диапазоны больше чем у вас (вы смотрели только с C5:C11)

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