替代组合

时间:2018-12-18 15:01:33

标签: excel google-sheets formula array-formulas google-sheets-formula

我想用多个字符串选项替换单元格列表中的一个重复出现的字符串,以接收所有可能组合的列表。

为了更好地理解,我为您准备了一张纸: https://docs.google.com/spreadsheets/d/1SKvwWIE9LqM9pYZ90r68h3Sl_Bl8Keid21Y0ukokqUM/edit?usp=sharing

在此示例中,我有一个表达式列表(A2:A),其中都包含单词“ next”,我希望将其替换为所有可用选项(B2:B),以创建所有可能组合的列表(C2:C)

我知道,为了创建A2:A和B2:B的所有可能组合,我可以使用: = ArrayFormula(transpose(split(rept(concatenate(A2:A&char(9)),counta(B2:B)),char(9))) &“”&transpose(split(concatenate(rept(B2:B&char(9),counta(A2:A))),char(9))))

1 个答案:

答案 0 :(得分:0)

您想要做的是查找并替换。这就是您想要的:

Per3WithUValuesOnly = COUNT(CASE WHEN Per3 = 'U' THEN 1 END)

说明

短语=ARRAYFORMULA( REPLACE( TRANSPOSE( SPLIT( REPT( CONCATENATE(A2:A & CHAR(9)), COUNTA(B2:B) ), CHAR(9) ) ), FIND( "next", TRANSPOSE( SPLIT( REPT( CONCATENATE(A2:A & CHAR(9)), COUNTA(B2:B) ), CHAR(9) ) ) ), 4, TRANSPOSE( SPLIT( CONCATENATE( REPT( B2:B & CHAR(9), COUNTA(A2:A) ), CHAR(9) ), CHAR(9) ) ) ) ) 创建一个列,该列重复列A中的项目与列B中的项目的次数相同。此模式一遍又一遍地重复整个列表。我称这个为TRANSPOSE( SPLIT ( REPT( CONCATENATE(A2:A & CHAR(9)), COUNTA(B2:B) ), CHAR(9) ))

短语PHRASE1创建一列,该列重复B列中的项目的次数与A列中存在项目的次数相同。此模式一遍又一遍地重复每个项目。我称这个为TRANSPOSE( SPLIT( CONCATENATE( REPT( B2:B & CHAR(9), COUNTA(A2:A)), CHAR(9) ), CHAR(9) ))

现在您有两个大小相等的数组。目的是在第一个数组中找到单词 next 并将其替换为第二个数组中的单词。为了找到单词 next ,我使用了PHRASE2。这为我提供了替换阶段的起点。我们称之为FIND("next", PHRASE1)

最后,替换很简单:START。这就是您在上面的代码中看到的。

我已经对此进行了测试,并且可以正常工作。