过滤字母组合

时间:2017-03-15 20:10:14

标签: excel filter combinations formula

嗨 - 我正在寻找以下问题的帮助。 我有一个实用程序操作,它为我提供了一组字母(或值)的所有组合。这是8选n的形式,即有8个字母,我可以为我想要不超过4个字母的序列生成所有组合。所以n可以是2,3或4

现在它变得有点复杂:8个字母由三个列表或组组成。因此,A,B,C,D; E1,E2; F1,F2

正如我所说,我可以毫无问题地获得所有2,3和4序列。但是我需要过滤它们以便我得到组合(或者更确切地说可以过滤结果),我只希望结果中的字母确保我得到(在n = 2条件下)A,B,C,D中的至少一个和一套来自E套装或F套装。

因此,作为一些例子,其中n = 2

AE1或DF2 ......没问题,但AB或E1E2或E1F1 ......不正常

当n = 3时,规则略有改变,但原则相同

ABE1,ABF1,BDF2或BE2F1 ......没问题,但ABC,ABD,AE1E2,DF1F2或E1E2F1 ......都不行。

同样,n = 4

ABE1F1,ABE1F2 ......没问题,但ABCD,ABE1E2,CDF1F2或E1E2F1F2 ......不行。

我尝试了一些使用不同公式的东西,例如Match和Countif,但无法弄明白。所以非常感谢任何帮助。

乔恩

1 个答案:

答案 0 :(得分:1)

我一直试图找到解决这个问题的方法,从中解决了一些问题。有两个因素使得处理

有点尴尬
(a) Combination of single letters and bigrams (digrams?)

(b) Possibility of several different letters / bigrams at each position in the string.

通过将字母或双字母分为三组或类来处理这两个问题是可能的

(1) Letters A-D - let's call this group L
(2) First pair of bigrams E1 & E2 - let's call this group M
(3) Second pair of bigrams F1 & F2 - let's call this group N.

然后我们可以列出允许的组合组合,据我可以解决这个问题

对于N = 2

LM
LN

对于N = 3

LLM
LLN
LMN

对于N = 4

LLMN

(我不知道是否允许LLLM等,但可以添加这些......)

我会做出一个很大的假设,即OP中提到的实用程序不会生成像AAAA或E1E1E1E1这样的字符串,否则它会变得毫无用处,你最好从头开始。

所以你只需要一个看起来像这样的替代品

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"A","L"),"B","L"),"C","L"),"D","L"),"E1","M"),"E2","M"),"F1","N"),"F2","N")

在允许的模式列表中查找

=ISNUMBER(MATCH(B2,$D$2:$D$10,0))

并过滤查找值为TRUE。

enter image description here