Получить количество дубликатов между любым количеством строк - PullRequest
1 голос
/ 14 июля 2020

ИЗМЕНИТЬ (Обновлены следующие предлагаемые решения)

Мне нужно подсчитать количество дубликатов между двумя строками (в одной формуле):

Row 1>  20  21  22  41    
Row 2>  3   20  30  22  47  49   

Здесь результат должен быть 2 (20 и 22)

Работают две следующие формулы:

=COUNT(FILTER(UNIQUE(flatten(TRANSPOSE(A2:F3))), ARRAYFORMULA( COUNTIF(flatten(TRANSPOSE(A2:F3)),UNIQUE(flatten(TRANSPOSE(A2:F3))))>1 )))

и

=countif(query(flatten(A2:F), "Select count(Col1) group by Col1"), ">1")

Но как только две строки не на том же листе формула больше не работает (даже с скобками)

Вот таблица Google с образцами данных и результатом: https://docs.google.com/spreadsheets/d/1PRNGgzAmpQUE0nCCuxBPJbM4gESUtnSMQf-cXG3ozBo/edit?usp=sharing

Что делают вы думаете?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 14 июля 2020

Используя другой подход,

=countif(query(flatten(A2:F), "Select count(Col1) where Col1 is not null group by Col1"), ">1")

или даже

=countif(query(flatten(A2:F), "Select count(Col1) group by Col1"), ">1")

РЕДАКТИРОВАТЬ: поскольку одна из строк отформатирована как текст, вам нужно будет преобразовать в число

=ArrayFormula(countif(query(flatten({value(B4:U4);Sheet1!B2:U2}), "Select count(Col1) group by Col1"), ">1"))

введите описание изображения здесь

3 голосов
/ 14 июля 2020

ИЗМЕНИТЬ (после OP комментарий )

Используйте следующую формулу без вспомогательный столбец

=COUNT(FILTER(UNIQUE(flatten(TRANSPOSE(A2:F3))), ARRAYFORMULA( COUNTIF(flatten(TRANSPOSE(A2:F3)),UNIQUE(flatten(TRANSPOSE(A2:F3))))>1 )))

Исходный ответ

Вы можете использовать следующие две формулы

Для столбца «помощник»

=flatten(TRANSPOSE(A2:F3))

Для подсчета:

=COUNTIF(ArrayFormula(if(H2:H="","",countifs(H2:H,H2:H,row(H2:H),"<="&row(H2:H)))),">1")

введите описание изображения здесь

Вы также можете включить их в одну формулу, заменив H2:H на flatten(TRANSPOSE(A2:F3)) во второй формуле

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