在三列数据中查找唯一的组合集,其中顺序不相关

问题描述 投票:0回答:1

我正在寻求生成跨三列的唯一数据组合列表(可以是两列到四列,但为了这个特定示例的目的,坚持使用三列)。

我正在使用 MS Excel(我相信是最新版本)

每列都有数据(为了便于解释,数据是字母表,字母 A 到 N。所以有 14 行)。

第1至第3列的数据完全相同

第 1 栏 第 2 栏 第 3 栏
A A A
B B B
...也下
N N N

我想要解决的是,从这三列14行可以生成什么独特的三列数据组合,并且所有数据都具有完全相同的数据。

举个例子,潜在的行(很多行)可能是......

第 1 栏 第 2 栏 第 3 栏
A B c

其中,可能的排列有 CAB、CBA、ABC、ACB、BCA、BAC。

虽然每个都不同,但就我的目的而言,这 6 个中的 5 个被视为重复。 A、B 和 C 的组合不必是特定的顺序。我不希望相同的字母以不同的顺序出现。

这个问题可以分为两个阶段

第 1 阶段 - 生成 3 列 14 行的所有排列的列表。输出必须将所有列分开

第 1 栏 第 2 栏 第 3 栏
A A A
A A B
A B A
B A A

等等...

它应该给出 c.2,744 行(我的数学可能不对)

第 2 阶段 - 删除所有这些排列中的重复项。

在 c.2744 行中,其中一些将被视为重复(如前面概述...CAB 和 CBA 相同)

第二阶段仍应将所有数据保留在各自的列中。如果需要,连接很简单。

理想情况下,我希望能轻松解决两个阶段的问题,以提高效率。

对于问题阶段 1 - 我在各种论坛/网站中找到了一些有帮助的东西,并且我相信我已经能够生成。

对于问题阶段 2 - 我再次四处寻找解决方案并尝试了各种公式等,但是它们不起作用

excel vba excel-formula duplicates permutation
1个回答
0
投票

这是一种方法:


=LET(
     α,A1:C14,
     REDUCE("",SEQUENCE(COLUMNS(α)),LAMBDA(x,y,
     TOCOL(x&TOROW(INDEX(α,,y),1)))))

© www.soinside.com 2019 - 2024. All rights reserved.