EXCEL: подсчитать комбинации для уникальных значений - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь посчитать следующее в Excel: У меня есть несколько уникальных значений для X (скажем, 4), каждое из которых появляется дважды (в случайном порядке) в наборе данных. Я хочу посчитать количество каждой комбинации (независимо от порядка) значений во втором столбце Y для каждого значения X.

Пример (здесь по порядку):

X Y

1 A
1 D
2 A
2 C
3 B
3 C
4 A
4 D

Как вывод, мне нужно:

n A,D 2
n A,C 1
n B,C 1
n B,D 0

(Предположим, что все другие комбинации не существуют.)

Возможно ли это без перестановки данных? Я не против поставить 4 формулы (для каждой возможной комбинации). Моя отправная точка была похожа на это: Excel подсчитывает уникальные комбинации столбцов , но я не могу понять это, а также я знаю, что похоже на ничего о Excel или кодировании ...

Ответы [ 3 ]

0 голосов
/ 24 января 2019

Чтобы получить количество пар, если данные не в порядке, сначала нужно получить пары по X. Создайте уникальный список X и используйте эту формулу:

=CHAR(AGGREGATE(15,6,CODE($B$2:$B$9)/($A$2:$A$9=D2),1))&","&CHAR(AGGREGATE(15,6,CODE($B$2:$B$9)/($A$2:$A$9=D2),2))

Обратите внимание, что это работает, только если Y - один символ, как ваши данные.

enter image description here

Затем создайте уникальный список этих выходных данных и используйте стандартный COUNTIF:

=COUNTIF(E:E,G2)

enter image description here

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

0 голосов
/ 27 января 2019

Вы можете использовать функцию MMULT для этой цели, например так (вы можете вставлять разрывы строк с помощью Alt + Enter, но вам это не нужно, это также работает, если вы пишете в одной строке):

=SUMPRODUCT(
  --($B$2:$B$19=  LEFT($D2,FIND(",",$D2)-1)  ),
  MMULT(
    --($A$2:$A$19=TRANSPOSE($A$2:$A$19)),
    --($B$2:$B$19=  MID($D2,FIND(",",$D2)+1,LEN($D2))  )))

Вы должны ввести это как формулу массива (После ввода нажмите Ctrl + Shift + Enter вместо просто Enter; вы увидите формулу внутри фигурных скобок, например: {= ...}).

Вот скриншот, чтобы показать, что означают диапазоны в формуле: Excel screenshot

0 голосов
/ 24 января 2019

Если вы используете вспомогательный столбец, вы можете объединить данные в то, что вы можете посчитать. Используйте формулу =IF(A2<>A1,B2,C1&","&B2) в столбце C. Таким образом, ваши данные станут:

X Y 
1 A A
1 D A,D
2 A A
2 C A,C
3 B B
3 C B,C
4 A A
4 D A,D

Тогда дело в подсчете комбинаций. Вот снимок моего примера:

enter image description here

...