![如何识别随机顺序的两个值的重复组合](https://linux22.com/image/1461259/%E5%A6%82%E4%BD%95%E8%AF%86%E5%88%AB%E9%9A%8F%E6%9C%BA%E9%A1%BA%E5%BA%8F%E7%9A%84%E4%B8%A4%E4%B8%AA%E5%80%BC%E7%9A%84%E9%87%8D%E5%A4%8D%E7%BB%84%E5%90%88.png)
我正在尝试识别跨两列(或更多列)的第二个重复单元格组合。使问题复杂化的是,组合的顺序会发生变化。
我的数据看起来像这样:
aaa 111
222 aaa
111 aaa
111 bbb
bbb 111
我正在寻找一个公式,对于这个例子,它会告诉我第 1、2 和 4 行是组合值的第一个实例,而第 3 和 5 行是第二个实例。
答案1
如果您只处理两列,那么使用函数/公式并不难。除了结果列之外,您还需要三个“辅助列”,并且需要识别一个从未出现在数据中的字符串。让我们使用 到 的列E
和H
字符串/
:
E1
—=IF(A1<B1, A1, B1)
F1
—=IF(A1<B1, B1, A1)
G1
—=E1 & "/" & F1
H1
—=COUNTIF(G$1:G1, G1)
E1
A1
是和的较小者(最小值)B1
,并且是和F1
的较大者。换句话说,和包含和的值,但按升序排列。然后与连接,以分隔。这是和的值的唯一且与顺序无关的组合。例如,和都包含,因为第 1 行和第 3 行在列和中以某种顺序排列和。然后列计算到目前为止此组合出现的次数。A1
B1
E1
F1
A1
B1
G1
E1
F1
/
A1
B1
G1
G3
111/aaa
111
aaa
A
B
H
请注意,H3
和H5
每个都包含2
,因为第 3 行和第 5 行是第二次出现组合的行。当我在第 6 行重复第 1 行的数据时,我得到了H6
= ,因为这是和3
的组合第三次出现。111
aaa
只要数据可以是数字或文本,如果你想要处理超过两列的数据,那么很快就会变得非常复杂。但是,如果数据都是数字,有一种方法可以让它变得更容易。或者,如果你愿意规定数据的最大长度(例如,不超过三个字符),它可能会变得易于管理。