获取任意数量的行之间的重复数

Get number of duplicates between any amount of rows

编辑(根据建议的解决方案更新)

我需要计算两行之间的重复项数(在一个公式中):

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

但是一旦两行不在同一行sheet公式就不再有效(即使有括号)

这是一个 Google Sheet 示例数据和结果:https://docs.google.com/spreadsheets/d/1PRNGgzAmpQUE0nCCuxBPJbM4gESUtnSMQf-cXG3ozBo/edit?usp=sharing

你怎么看?

谢谢!

编辑 (跟随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)),从而将它们合并到一个公式中

使用不同的方法,

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