嗨 - 我正在寻找以下问题的帮助。 我有一个实用程序操作,它为我提供了一组字母(或值)的所有组合。这是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,但无法弄明白。所以非常感谢任何帮助。
乔恩
答案 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。